{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Open</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>Adj Close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-09-10</th>\n",
       "      <td>35.740002</td>\n",
       "      <td>34.750000</td>\n",
       "      <td>35.709999</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>67533066.0</td>\n",
       "      <td>35.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-11</th>\n",
       "      <td>35.240002</td>\n",
       "      <td>34.709999</td>\n",
       "      <td>35.189999</td>\n",
       "      <td>35.049999</td>\n",
       "      <td>60908940.0</td>\n",
       "      <td>35.049999</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-12</th>\n",
       "      <td>35.430000</td>\n",
       "      <td>34.970001</td>\n",
       "      <td>35.400002</td>\n",
       "      <td>35.290001</td>\n",
       "      <td>52582171.0</td>\n",
       "      <td>35.290001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-16</th>\n",
       "      <td>35.540001</td>\n",
       "      <td>34.820000</td>\n",
       "      <td>35.500000</td>\n",
       "      <td>35.000000</td>\n",
       "      <td>46166805.0</td>\n",
       "      <td>35.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-17</th>\n",
       "      <td>35.180000</td>\n",
       "      <td>34.619999</td>\n",
       "      <td>35.070000</td>\n",
       "      <td>34.700001</td>\n",
       "      <td>40907776.0</td>\n",
       "      <td>34.700001</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 High        Low       Open      Close      Volume  Adj Close\n",
       "Date                                                                         \n",
       "2019-09-10  35.740002  34.750000  35.709999  35.000000  67533066.0  35.000000\n",
       "2019-09-11  35.240002  34.709999  35.189999  35.049999  60908940.0  35.049999\n",
       "2019-09-12  35.430000  34.970001  35.400002  35.290001  52582171.0  35.290001\n",
       "2019-09-16  35.540001  34.820000  35.500000  35.000000  46166805.0  35.000000\n",
       "2019-09-17  35.180000  34.619999  35.070000  34.700001  40907776.0  34.700001"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas_datareader.data as web\n",
    "import datetime\n",
    "import yfinance as yf\n",
    "# yf.pdr_override()\n",
    "\n",
    "start=datetime.datetime(2008, 1, 1)\n",
    "end=datetime.datetime.today()\n",
    "apple=web.get_data_yahoo('600036.SS',start,end)\n",
    "apple.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'NDX' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-14-9b207c6cbd77>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mNDX\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtail\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m: name 'NDX' is not defined"
     ]
    }
   ],
   "source": [
    "apple.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEACAYAAABS29YJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXd4VGX2x79nSnoDEpIQSgi9t4AggohU0bVhW3+Kbdm1rK4de11l7WVXWQuKrmXtuIIIIigI0nuXXgKhpdeZeX9/3Htn7r1zJ5nJzGTa+TxPntx5b5n3zUzOPfe85/0eEkKAYRiGiW5Moe4AwzAME3zY2DMMw8QAbOwZhmFiADb2DMMwMQAbe4ZhmBiAjT3DMEwMwMaeYRgmBmBjzzAMEwOwsWcYhokB2NgzDMPEAJZQd0AhMzNT5Ofnh7obDMMwEcWaNWtOCCGyGjsubIx9fn4+Vq9eHepuMAzDRBREtN+b4ziMwzAMEwOwsWcYhokB2NgzDMPEAGzsGYZhYgA29gzDMDEAG/so4tDpqlB3gWGYMMVvY09EGUT0BRFtJ6JtRDSMiFoS0QIi2iX/bhGIzjKeWbS9GGf9YxEWbD0W6q4wDBOGBMKzfxXAPCFEdwD9AGwDMA3AQiFEFwAL5ddMEPlpezEAYNGO4hD3hGGYcMQvY09EaQBGAngXAIQQdUKIEgAXApglHzYLwEX+vA/TOCcqagEAH684EOKeMAwTjvjr2RcAOA7gPSJaR0TvEFEygGwhRBEAyL9bG51MRFOJaDURrT5+/LifXYltymtsoe4CwzBhjL/G3gJgIIA3hRADAFTCh5CNEOItIUShEKIwK6tRaQemAdKTrKHuAsMwYYy/xv4QgENCiBXy6y8gGf9jRJQLAPJvDiQHmYLMZADAdWfmh7YjDMOEJX4ZeyHEUQAHiaib3HQugK0AvgUwRW6bAmC2P+/DNI7dIQAANocjxD1hGCYcCYTq5V8BfEREcQD2ALge0k3kMyK6EcABAJcF4H2YBlCMfWk1x+4ZhnHHb2MvhFgPoNBg17n+XpvxHpts7E+U14a4JwzDhCNho2fPNI2i0mpc/94qZKbEAwBOV9WFuEcMw4QjbOwjnHmbj2L70XIA5QCA7UfLUVpVz9k5DMNoYG2cCIcM2vo9Ob/Z+8EwTHjDxj7CMZv5I2QYpnHYUkQ4CRb+CBmGaRy2FBHOvV9sNGwXQjRzTxiGCWfY2EcpbOsZhlHDxj5KYVvPMIwaNvZRxJRhHdBR1sjhMA7DMGrY2EcR5bU2XDIgDwB79gzDaGFjH+FkpcY7t3cfrwTJiffs2DMMo4aNfYTjcLisenqiFSRbe8G+PcMwKtjYRzAfrziAk5UuLZzkOLNzmz17hmHUsLGPYB78epPmdUaS1RnGYRiGUcPGPop4aFLPUHeBYZgwhVUvIxSb3VWRatYNQ9AnLx0p8RaQLI3GYRyGYdSwZx+hHK9wFSk5u2sWWibHAQAcspVfvudEg+fb7A4cOFkVvA4yDBNWsLGPUIpKawAAM6/TFgnbc7wSAHDfF5uw+XApaurthue/uGAnRj6/CIdLqoPbUYZhwgI29hFKcZnk2bdOTdC2l0s3gXiLCee/vhQ3vL/K8PyVe08BAIrY2DNMTMDGPkI5eEoKwWToKlLZ7HItWjnMs2z3ScPzlXDP5BnL2btnmBiAjX2E8smqAwCAFklxmna7vMiq1uZwO0fNugMlzu3h038KcO8Yhgk32NhHKGd1zgQAJMdrE6rqHVojbzFx4j3DMGzsIxYTEdIS3DNn7Q5tzmW8h0pWwzu3Ckq/GIYJT9jYRyg2hwNWg/qzSsxeId5qdjsGkG4WvnCqsg6z1x/26RyGYcIHNvYRit0hYDYI0eg9+9YqVcwjJdXInzYHi3YU+2zsb/t4Le74dD2O8GQuw0QkbOwjlKOlNc6FVGpscsz+zE5SmOZISbWzkMlfP1kHALj+vVVuN4rGip0cPC1l/9TbG574ZRgmPPHb2BPRPiLaRETriWi13NaSiBYQ0S75dwv/u8oo2B0Ci3Ycx/aj5W77HpjYAy2SrJh53WD0bZuOshob3l26FwDQKSvZeZze2DsakVc4eEry6NnYM0xkEijP/hwhRH8hhLKccxqAhUKILgAWyq+ZALH5cKnHfWN6ZmPdo+OQYDXj0GnJQC/bfRIVtTZ8tvqQdEyPbDdP3qbL4hFCYOxLP+O7jUc07VV1xityGYYJb4IVxrkQwCx5exaAi4L0PjHJRtnYf3XLmQ0ep/juVjPh4xX7ne21Njt+3FYMAOjfLgOA+8Tu2gMl2FVcgds+XoejsjQDAKw/WAKGYSKPQBh7AWA+Ea0hoqlyW7YQoggA5N+tA/A+jEyN7F13aZ3i1fEWswkfLHcZ+yW7JJG0PnnpuKBfGwCATRfHmbVsn3N76LMLnduPzt6iUdxkGCYyCITE8XAhxBEiag1gARFt9/ZE+eYwFQDat28fgK7EBoq4WYKHtEqF3IwEnKysQ2ZynDOko2Zsz2znoit9Fs+3G6TwTXZaPI6V1Wr22RwClobfmmGYMMNvz14IcUT+XQzgawBDABwjolwAkH8Xezj3LSFEoRCiMCsry9+uxAzV9XZYTGSYZ6/m39dIUyie9HFKquqdE7U2h0MTx0+RV+bqDT3gfmNgGCb88cvYE1EyEaUq2wDGAdgM4FsAU+TDpgCY7c/7MFqq6+1IbMSrB4A26ZIi5q7iCsP9vdqkwWqWjP3y3SfR8YG5zsnfnm3SPF5XH99nGCb88dezzwawlIg2AFgJYI4QYh6A6QDGEtEuAGPl10yAqKl3ICGucWNPRE4PXU9eRiIuGZgHs0n6Cny2+iAA1wRsrQcdfMBdf4dhmPDHr5i9EGIPgH4G7ScBnOvPtRnP1NTbkWD17j49eVBbvK+abB3YPgNrD5SgS3YKiMgZs//1dynUoyzUMlLNTE2woLzG5pRHZhgmcuAVtBHI1+sOOxc5NUacSgjtxcv6Ya0sbZwkPxnU6Yy68tqowtV947sB4Pq2DBOJsLGPMJQKU96ixOSJgEsG5jnbK2olY15aXa85vrLOBiEEDpyqQvecVM0+izwhrHj2X645hE9WHvBtAAzDhAQ29mFMSVWdMwVS4XZZ3+b20Z29uoaSsSOEFMNXUHLlS6rrdO9Zj/d+3QeHAI6W1Wj2meXzlWScuz/fgAe+2uTlaBiGCSWByLNngsS9X2zEgq3H0KtNGjplSQuoFAN8orKuoVOdeMqcUbz07jnarJvTlXVYc0IqWl5SpfX6lXuFg1MvGSbiYM8+iBw6XYWPV/gW5qistWHGz7thdwhnHVllQZRaE+dUhXfGXkBrmN+8eiAAwCpPzJ7fN1ez/4Pf9jtDP2p2Pj3RKYsshFYQjWWPGSb8YWMfRK6duRIPfr0JpToPuSFenL8T07/fjrmbipxpk1NmrgQAnP/6UudxRlr2RrRvmaR5rZh+JbxDRJrMnjqbA/UGTwNxFhPkLE04hMDGQ64bj9HqXIZhwgs29kHklBxqsfuQvlJdbwMAlNfYPJYUBIAWyVavrte2hdbYKx65ReW9E7Q3jp+2Swue/yDr5iiYnDF7gUvfXOZsL6ny7imDYZjQwcY+iFTUSIZbLx/cEIrHXW93NKgx/8DEHl5dT3k6yMtIlK8rXTROJbXgqX93j+uqeU26CVoFfUYPwzDhR9hO0NodAkII50RiJKIoSRqFRTyhGPs6m8OwEhUAjOqWhWQPK2P19GuXgecm98WE3jlSn2TPXq2r0zo1AYd1cfdrhnZwCxUpL/Va+GzsGSb8CVtL2unBuej80PfYfdxY1yWSuP+LjV4fq4iMVdfbNcGVPaq/Q5IXUglqLi9sh7QEKezTMVOqVjWog6t42Gd/GYbbztGmcibFmQ2MvbFnX80FTRgm7AlLY6/2HG/+z5oQ9qTplNW4vN2lv59o9PiXF+zEM3O3OaUNKmptqFNlvIx+8Wfndu+89Cb364yCVvjp7rNxWWFbZ1teRiLuGd8NY3pkuw4kV169gmL79XIJC7Ydwz45XZNhmPAkLI29Wpelpj4yRbd2HXOvD7vneAUOnqoyPP7Vhbvw1i97nK/La2yoNRh777w0/GVkJ7/6VpCVollgpXDTiI7ObRMRUhK0oSJSTdCq2XioFKNeWOxXnxiGCS5hGbNfttvlCRtptEQCRnF6xTvfN32Spt1IH77WZse8LUfdr9GtNUxepl36SrdslzwCAUiK03491Hn2DMNEFmHp2c/d5DJyRuqLkUCZatKyQI6Te3OswtJdxqGftETvUi6bglo0TV+mEHCFcd5ZssdtH8Mw4U1YevYdVAuBguTEBp2pH0pzDXEWE/IbMfYlBsa+uFxaPRtvMWlueMpEazBQZ+go6pef/XmYMytI8ey/WS/p9fTOS8PBU9WcjcMwEUBYevYFWa5C2kpxjUglI9GKOpvDLV1RzTGd4JiabjrlydE9gle73WomtE6NR0FWMv42pgsAYEjHlugsFzbXh/l/L64wlFYAgA9/2491B04Hra8Mw/hGWHr2tTZXnD6C0+wBABlJVtTZHahqID1xnawxb0S6KmyTYDUhMyU+oP1TQ0RY+dAYj/tNOmtfU+9ARqL7B7T/ZCUe+WYzAPf5CYZhQkPYGPs6mwNHSqrRJiNRU1Aj0gQWP1qxX/M6LUHy7NWpmKVV9UhPchlxvcywmhZJroVVOWkJAeyp7+iNPQBYLe5tT323tTm6wzCMD4SN37zjWDnOnP4TAG0Gjt0hsOFgCZ7+biuEEFi17xRW7/OtgEdz8tDXm/HQ15udC5LS5TBOuSydAAAzftmtOcfewArb3HSXgf/oT0MD3Fvf0M+ftElPQHKcu7+QqGp74KtNqKqzuR3DMEzzEjbGXs3j/3N5hiYi/N87K/DO0r2oqrPjshnLMXnG8hD2zjvsDoHz++YizmJCvd2hybjJUIVm1h8swfebjyI1wYLf/z4RPXK1+vIjumQBAKaOLHDq24SKrFRtCCnOYjKUbeiW7Zpz+WTlAXy68mDQ+8YwTMOEpbFX0y0nxanQWFkbWR5iotWMOIsJdXZtGKeFSvPmhvdX4XBJNSwmgsVswtzbz9Jco2tOCtY+MtZZ/zWU6LOKrGYTTsqa+4C06heA2zoAdcFzhmFCQ9jE7NUkxZnRPScVFrMJdodwZuSEe879zzuPa14nxpmBOmk+oqzadaNSL6JSZJCVvHb9ytaslHjD1a6hwKqbLY+zmLCr2KXZU1xWg5SsFNTbtGGpAx5WDTMM03yEpbFvkRSHgqwUHD5dDbtDwCJ7iup87pp6OxKsZgghIIS7N9ncvLl4t1vFpsQ4M2wOIYVxVJ69ojypnptQx/QVZt86PGwMvRFxOr195WasrmLFMEx4EJZhnFqbA3EWE8wmgl0IZ93V3/acdB5TXCaFDx76ZjMKHpwbkn6q+ce87fjwN20mzsFTVYgzm3Ciog6Pzt7ibFe8+O6PzGvwmhYPOezhQpzZhIsH5Dlfv7FYmniu1+njq2UYGIYJDWFp7OtsdsSZTSAC1ux3LcxRi4gdK6+BwyGcNV4bWrQUKuwOYZiuaKSFY4QlzBeUZSRZNU8nSkEUfRgnjB9OGCZmCDtrIoRAdb0diXFmtxi9emFSSVU9rnz7N+fruhCGDjzdaMb2zMGs5fvc2o1E0tqku+fQh6Nnn2iVtPTH9MjGs5f01XxGZxS0BADM/HWv5hwj7R+GYZqXgBh7IjIT0Toi+k5+3ZGIVhDRLiL6LxEZl1wyoOMDc1FvF8hItGJ7UZlmX5XKizxWVoOVe1359nUhnLz15KlbTGS4z25QBtCoIpc1DD17ZUXvXWO7omVynKbASXWdHV+tPeR2jpH2D8MwzUugrMkdALapXv8DwMtCiC4ATgO40dcLZiRZkZGkvUcs3+2K2T8sL8dXCKWxN1KIBKRJY0VXRn+8ze5AbnoCCuWKUUahjjYZoV0xa0S6TnXznG4urZ6qOjvu+myD8/XyB0bjujPzUVVn10hgMAzT/Pht7ImoLYBJAN6RXxOA0QC+kA+ZBeAiX69rMZk0BtBsImeaohGhTMv09N4WE2HmlMHO1+9OKYSJAJtdoNdjP6CotAY9ctNwbvfWeOWK/u7nh6EwkCKPoDyxXDWkHZY/MBoAUK1bKZubnoiCLCk3n5UxGSa0BMKavALgPgCKxWsFoEQIofznHwKQZ3RiQyRYzZqKSJ7UFRVC6dl70nc3EaF9K5dcc16LRFjMJtgcwnmDaJFkxbvXDcaA9q6asPP+NgJf3jwsuJ1uIgRttSoiQm56IqxmQr1DOJ9Udv19IgBgt5yH/9y8HSHoLcMwCn4ZeyI6H0CxEEJdKNbIKhvGOYhoKhGtJqLV+n3n9cnRVETSL+jRE0rPfv9J40VDyvqAVFlSIC3BCouJUFHr8nL1pf8AoHtOGgZ1aBmEnvqPEqLXf6AWkwlbjpRh9f7TsJjI+Xkpn8vs9YebsZcMw+jx17MfDuAPRLQPwKeQwjevAMggIsWKtQVwxOhkIcRbQohCIUShfh8RaYy9pZFFUycraxvcH0z6tjUuAK5MXq56eAz+d9tZaJORCLOJsPOoa9WpkbZMODM4X7oJtdTNp1jMhHVymqx6DkPZNspAYhim+fDL2AshHhBCtBVC5AO4EsBPQoirASwCMFk+bAqA2U25vjqMoy5icmH/Nm7HXvfeqqa8RUB4es42w3ZlVW+C1Yw+8g2hY2YyVqpUO+Mt5uB3MIBMm9gdC+4cqQlPAfKTl3w/fuPqgc72MzpKN4cWScGrsMUwTOMEawbwfgB3EdHvkGL47zblImpjf0IW3MrLSMSfRhS4HRvKmL0njJ5GOmdps3MireyixWxCF4MVsWYTOSUfBqrmHyYPaotebdLQsZHSjAzDBJeAGXshxGIhxPny9h4hxBAhRGchxGVCCJ9iLClyaKNDS8lAfHvbcOe+Kwa3M4zfJ8eFn4dstHpWn5USLatL1Tet5HjXZ0FEyElLaPKcSk293aklxDBM0wmb3D61YZx1g5SuOOOaQXjsgp7okZvmjH+nJVgMV5ae1ye3eTrqA3qhMACaRUjRxLEy1/08SVfQJM5iavKTV/dH5uFPH7jN3zMM4yNhY+yT4szomJmMj246w5mJ0jI5DtcP7wir2YSWsgZ8nMXs1GBR463eTDDITIl3KzoCAH3y3CduHTppha5RKBKmv6ElWs04UVHbZDXMRTuON34QwzANEjbG3mwiLLpnFIZ3zjTcf7xc8hyLSqs1nr0SC/a0irU5cAiB/u1chv2bW4fjnWsLDT17dT+X3HcOerUxzuSJJoZ3zsTpqnpM9cNDH/bsQrd6AQzDeE/YGHtvgxuZKfGamP2ie0ahc+uUoHv2xeU1HvfZ7A5NVk3/dhkY0zPb8Fh1N9u1TDI8JtrIz5TG6auHfrTU9TcvKq3BlJkrA9ovhoklwsfYNzJTmWCVunrRgDw3gTCLiWAzEBcLFIt3FGPI3xfip+3HDPcrBVZaJTeu9+YI4RNIqEhLcKVdHvCwAM2I9QdPN34QwzBeETbGPtdA4lfNd38dgXvHd0N6ohVmOYyjGFezB3XJQLH2QAkAYP3BUsP9diFgNhOW3H8ONj4+rsFrBfOmFK6oY/hfrXNXxfSEUWhu17HygPSJYWKNsDH2jWWpdG6dglvP6QxASs28d3w3fPYXl37MnuOVQeubIvDlaRWv3SFgJkJSnEXjxRoxunvrBvdHKq9e2R8FmcmYeZ3bYmjNpHRWarzX17QZrLpV1zRgGMZ7wsbY+8qt53RGJ3mB0pYjZdhzolJT5zWQKBODSR5y+dV1chvDaEFYNHBh/zz8dM8ojO7uPlehloRIbeRmqMbIs7/wX782rYMME+NErLE34kR5cPRxlAVBX6xxD0EIIeDwoeA5EWH6JX3w9S1nBrSP4UxueiJevqIfAPi0QEo5tlVyHO4c09XZ/vKCnYHtIMPEAFFl7JWC14HmSEk1AGD7UVe8uN7uwPwtR53ep7eePQBcOaS9RtI4FjijYysAwObDZY0c6UL5237/txHooNLi+UiuO8wwjPdEhbFXCn8MK2gVlOsrufxdVFWnXlu4C1M/XIOf5XRCcxiWEAwnlHTZmb/ubbAIjRrFs7eYTJjQO8fZri5yzjCMd0SFheqdJ61etRosYgoESmnBSwa2dbYdOCWlEBaVSbngYVhUKqxQr3ouqfLO2C+Ty1BazIQEqxmvXtnf+ZphGN+IChOleNVGhbwDgZJMMm9zkbMt0SpN1j4i18IN5QreSEApZwgA077chNKqxifT52+V1jWY5TUYF/bPw3l9cpCZ4n1GD8MwElFh7JV4ebALZGw4JOXZ19rs+HTVQe2+gyVBfe9IR73qeeW+U3jwm01en6vOgkq0WlDN6ZcM4zORVSbJA4oxqKq1NXKk79TbHfh+81FN2wfL9rsdx/nfDaOfwFZLIXiidWo8RndvrVldHWch1LHkMcP4TFR49umJUu52aXXgjX2xLp3TZnfghfnuxbNDqboZCRCRM/3SW2wO4Raft5hMrG/PME0gKoy9xWxCSrwFJdXeTfz5Qr1Oh73G5jAsxNEiqXFdnFjn4gGuCW6zF1Vb6u0OWHRZTmYT4XRVPT5a4f50xTCMZ6LC2ANAaoIFFTWB9+yVkMFZsvRyRY0NE1VpgADQrmUinrm4T8DfO5rxpkKXzS5g1Xn2yuuHvt4cjG4xTNQSNcbeRMERQ1MqLLVKkTz3oc8udCstOGVYPtK5oLZX/HmkJBfR2Cf1xZpDqK63w6LLad1xrMK5HYsKogzTVKLG2ANocp3ThlA8e3W6n5L/rWBUa5YxZtrE7hjTozXK5BtmVZ0N57++BOsOuOSMq+vsuOfzDQAAq25iV32j3XS4FNuKyrBmP0shM0xjRI2xP1xSjTmbiho/0EfqdZ69EfHWqPkzBh0iQl5GIg6drsaxshr0fPQHbD5chqfnbHMeU61aIauv9qX25m/9eC0mvroEl765jGP4DNMIbKUaQcnd97SQ58azOmLyoLaG+xhjWqcloKLWhi1HXPUB1BPcamM/rJO2TGW5Stn00Olq5/ZDX2/Gyr2ngtFdhokKoiLPPpjU2SXDk6Uz9md0bIm3pxQ2ql/PuKNIJ6gzKDNVT07qRVOKLpHCwA4tsM9DtasFW49iSMeWAewpw0QPUefZ/2PeduwMYDWjdXKVqpa6koOt0xLY0DcRJTSjlrdQ/33VQmf6PPtnLu6D2bcON7xuXkZiILvJMFFF1Bj7eNmAvLl4Ny54fWnArvv6T78DAJLjtYVLEoIkuhYLFMmrZ7cccckdq/Nq1OEdfb3hBKsZfdumG143GBP0DBMtRI3FunJwO+d2rc2B/Glz8OnKwOmex5l1xt5qXLWKaZz/bTgCAPj3z3ucbSVVdaizOVBRa8P9X7p0c/R59oDn4vQ19WzsGcYTUWPsjfTkn//BXdbAF/Ycd+V0q1UbASCBM3CaTNdsSTJarXHzycqDuP/LjSgqcU26bn9qgluevcJzk/s6t68a0g5WM6HGxvpEDOMJvywWESUQ0Uoi2kBEW4joCbm9IxGtIKJdRPRfIgq6lsAvu467takLXTcFdWWqJKt2Ljvewp59U5k2sYfmtRKC+3rdYZSpVkE39PR0eWE7Z/H2O8d2Rb1d4M3Fu7HjaODmaxgmmvDXPa0FMFoI0Q9AfwATiGgogH8AeFkI0QXAaQA3+vk+jaKWwe2UJWVwNGVFrRACLy/YiaLSaqf3nppgQXqSFTP+bxBayROJZh/KEDJaUhK0N071PXnfiUoA2qpgnnj9qgFY9dAYtE5NcLaNf+WXwHSSYaIMv4y9kFBiHVb5RwAYDeALuX0WgIv8eR9vSFR5gYp32JTV9Hd8uh6vLtyF2z9Zh8paKSzw1c1ScfAJvXOck4BVdYHX4YkVEnUeu1BNz94tr5z95x8HNnqd5HgLslK5kAnDeIPfgWciMhPRegDFABYA2A2gRAihWMNDAPL8fZ/GSFR59sqS+qZ49t/Kk4cVtXZUyvr4SfEuT1SZGzxHDiEwvqOf7zD6nHLSE9zaGuL+Cd0BuKfIMgwj4bexF0LYhRD9AbQFMARAD6PDjM4loqlEtJqIVh8/7h5z94UEVQxdES/zRxhNCIFKeXFPSpzL2D95YS8AQL+2GU2+dqyj/qz+O3Uo8lslux2j1CjwlptHdcItozrhVGUdTntZ0JxhYomApZQIIUoALAYwFEAGESkWsi2AIx7OeUsIUSiEKMzKyvLr/Tu0SnJr87Wikbooht0hnJWvklQ59hcPaIt90ychOZ4XHzcVk2q+44yCVl7JHXuDUg2ryIsqWAwTa/ibjZNFRBnydiKAMQC2AVgEYLJ82BQAs/15H2+4c2xXvHxFP0zqm9vka9SoFuWcrqpDRZ0NcRaTpn4qE3yGFjRN8qCv/LRlC1LheYaJZPy1YrkAFhHRRgCrACwQQnwH4H4AdxHR7wBaAXjXz/dplASrGRcPaKsJEfiKXVWw/ERFHapq7UiO4xTLYKNfJHXX2G5Nuo5VTuEMduF5holE/IpFCCE2Ahhg0L4HUvy+2fFHbrhe5RF2zU7Bh7+xbG5z8NqVA3Dea0ucr/Wyxt6iSFhwphTDuBN18Yk4XcjllBeTdVV1NszbfBQ2lUe4U1URiQkuPduk4ZIBroQt/WfoLW1kITS19DHDMBJRZ+z1qy5X7Dnp4UgX17y7En/5zxp8vvpgsLrFGKBeCPfnszs5t5vq2bfJSITVTDhwylgCmWFimahLKdHncOe1aFz2Vilr9+bPu4PSJ8adzU+Mh3oRcrecVLROjUdxeW2TPXuziZBgNWP57sZv8AwTa0SdZ69fnemLrIHZIAfwrrFd/e4T405KvAVJcVpf4+KBUiinRXLT6wSU19iw/mCJU3aBYRiJ6DP2uuwZX7LwzjBI+eOSg83HfeO7Y90jY5EagKIwP2w5igMeKloxTCwSdcZe7y3afVC+VGqfjuuZ7WzTV0pigofZRGgRILmDZ7/fjpHPL0JxOS+wYhggCo19TppWU6UxyYQlKmlkpfbpVUPaO9ssBjr5TPjSPSdV8/qhrzeHqCcME15EnSXLSdeqIDamab/09xPO7WNltQDX//10AAAgAElEQVS0cX727COLt68t1Lxu68UEPcPEAlFn7PXSBp48++PltbA7hFOfHgAOy1WS1MY+icsPRhTpSa54/6AOLbDhYEkIexPbLNpejPxpc3iRW5gQdcbepMuoMfLs952oxOC//4h3luxxOx4Ayqrr8cJl/fD3i3t7LIvHhCdqhdL0RCtLJ4SAAyersHhHMa5/fxUAoOejP4S4RwwQhXn2Jl2qpVE2zsHTUpbGs99vx9ld3dU2x/TMZvGzCEX5/Id0bAmLiXCyohZCCI9FypnA8t3GI7jt43Wh7gZjQNRZNH1avVE2jlKUBAB+3umuo8+GPrJZ+8hYfHDDEJRU1eNIaQ1m/Lwn1F2KGYwM/TVDO4SgJ4yeqLNq+oVRDoOYfXmNewxRqVvLRD4tk+OQYDXjRKU04f795qIQ9yi2OV3FxWTCgagz9vrHdaMJWiNjz4/50UdRiZRjX2djffvm4pKBLkG7gqxkDM5vgb0nKnlFcxgQhcZe+9qmM/YnK2rdNHD65KWjYyZ79tGGskhOv6qaCR7q7DYIoFVyPLYcKcOoFxZj8+HS0HWMiT5jr9fGOVKilbt9acFOHC+v1bR9/pdheOGyfkHvG9O8PDxJKoc8rKBViHsSO5yqrHdum0ykUTA9//WlWLn3VCi6xSAKjb1SG3ZUNynL5snvtmr2HzTQOjebCOmJVqQnWjE4v0XwO8k0CzeNKEBynJnDOM3IqUqXI/V7cYXbosT9JzmcEyqiLvUSAPZNn4QTFbUofPpHt3018qO9GqVQ9YbHxgW9b0zzkmA1o5aNfbOhLxZ0UFdboKKWF1iFiqjz7BX0RUwUjFZU8uRs9BJvMRne4JngUF5jQ3qiaxXzkRKtEN0T/9uqP4VpJqLSswekf3IjWiTF4WiZ6wuYmRIYlUUmPIm3mlFnZ8++uaiss2F8r2xkpcZjaEErJFrNmDxjeai7xSCKPXv1wih15SJFn/75yX0BAAPac4w+mom3mFBbHx7G3mZ3YMHWY6HuRlCpqrUjOd6Ce8d3x4guWchMiXc7ptbGT1qhIGqNvRp1nLDWZkei1YyWcopYYxLITGQTbzGFjXEZ/8ov+NMHq/HY7OiUXT5aWoPyWhtW7HFl3BjVE66pC4+bb6wRE8ZenY5ZVm1DaoLFqWxZz4/4UU28xYyaZvDsq+psjToOu49LmSizlu/HjCisd/zT9mIAwNaiMmeb2tgrKbBlNfUor6kH07zEhLFXFyEvr61HWqLVGeaxsSpiVBNvNWHNgdP4z2/7Gzyu3u7AjJ93N2kyd8uRUvR89Ad0enCux2NKdJIB07/fjsv/HT2x7K1HyvDRCulv/OXNw5ztinxJfqskXNi/DQBgxHOL0Ofx+bicY/nNSkwYe3W2jeLZD85viUsG5mH6pX1C2DMm2MRbTKizOfDwN5vx/SbPGjmfrT6I6d9vxztLfBdN+26j67qevPv+Ty5wa1u59xR+Ly73+f3CBSGE8+Z43mtLsOWI5NG3a5HkPKZFchwentQDH9xwhpvA4Mp9vMCqOYkJY6/WtC+vtSEl3oI4iwkvXd4fHVqxTEI0E29xhfBu/mitx+NOVkied7mPeeB3fLoOby52hWQaE/2aeZ22ktaYl36J2OIet3+6Ht0fmecmNqg36jeNKED7VkmwesiQ02OzO3C4pBrCh/rRTOP4ZeyJqB0RLSKibUS0hYjukNtbEtECItol/w5pyova26qtt3vMwWeiD30K7unKOpTp4sUOh8BLC3YCAP798x786YPVXs/lzF5/RPNaL8WhZ1TX1viH7mly3YHIrKb1vw3S2At04auUBOOM7jgvS3xe//4qDJ/+U4NhMcZ3/PXsbQDuFkL0ADAUwK1E1BPANAALhRBdACyUXzc7it6N2vOoszsMMwSY6ERfzGbAUwvQ9/H5mja9N79g6zHsONq08IqRZ2+Tbxx/HlkAk4lwxeD22Dd9knP/1iNlbudEKu9OKfRYD8Lb/7slu6S60JwoF1j8snpCiCIhxFp5uxzANgB5AC4EMEs+bBaAi/x5n6bSvqUUO1R/aepsDsRxcZKYwRulxbJq98yQWpsDu46V4/Fvt3j08tVhBsWxKK2qx4GTVTh0usoZzy6Wvf3WaQma87tlpwKAZpFfJHPbOZ1xbo9sj/vVN4ERXTI9HneRPJFrNhFn7TTAD1uOotiH707ArB4R5QMYAGAFgGwhRBEg3RAAtA7U+/iC8t1SqlUt3lGMQ6er2djHEEa1CwBtaK9UNvbPXdrX2SaEwNiXf8H7y/Zhzf7ThtdQy2cXyMVvbv5oLUY+vwhn/WMRuj8yD3uOVzizVCp1TxBz7xiB9i2TcCxKjL06680ItdM1UF7MaFRc6FSV9HnYHQIHZG2d0up6bDrEEskKJypq8ecP1+Dqd1Z4fU5ArB4RpQD4EsDfhBBeP5MS0VQiWk1Eq48fdy8P6C9KMXHlC3Xde1IBZA7jxA6K9/3X0Z017atVmSCKsW/fypVFUlnnSsH0lI6pqGleMiDP6aXrGf3iz1AeAG48q6Nmn9lEKCqt1mTzRDL6kJmekbI33ykrGVY5fq+vNwEAx0prkJUqrbxVtHXu/XwDLvjnUuw+XhHILkck3244gsF/l0QeDxmo+HrCb6tHRFZIhv4jIcRXcvMxIsqV9+cCKDY6VwjxlhCiUAhRmJXlXvjbX5SFU7t06W2edHOY6GNS31wAQFedMVYWOG06VIrtcnxeLeA1ZeZK57YnpUalOEq/dhlOaW0jfthyFC2T4wyPqZfXeURauKIh9VhPEBG2PzUB398xEhb56dooVbWotBr92qYDcEkm18g31l8MakbHEtuPluH2T9Y5HYhCHyTZ/c3GIQDvAtgmhHhJtetbAFPk7SkAZvvzPk1F8eyfmbtdo0mSmmD1dAoTZdw3oTtWPnQuWqdqNVpeW7gLAHDBP5fiKbnmQXqiFQUGFcuUlaFqSqvrnQqq2Wnu+i8AoNi+3ccrkeYhQ0UpsPLo7C1ejCZ86P7IPLc2s6lxc5JgNSPOYnLeGE5UaLOX3lj8O8pqbM6U6L0nqjDgyflOI68/PtbQ3xzbtkj0+lx/XdzhAK4BMJqI1ss/5wGYDmAsEe0CMFZ+3eyYVZ7Gnz5Y7dxO9fCPx0QfVrMJrVMT3EoTZqcnuB2bkWTFwrvPdmv/au1ht7YBT87HjbOk71ROuvQP1yM3DQBw7bAOuPWcTvj97+c5j993ssrtGgBw/XAptBNJIttqg6OeaPUysxKAKzzz5w/XONtsdgeem7cDAJArfz4zft6N01Wup54T5bFdvFw/v+OLyJ9fVk8IsRSev6fn+nPtQODpsdLcyOMmE32oY8P92qajstbmNjmYaDWDiHDD8I6Y+etezb4TFbUaBUf1qYrXPvvW4ai12Q2fHD1NXppNhILMZNRGkEaTOm7+9EW9cfbziwG4Zxs1hPIvuLWoDMfKapBgMaPfk66UWKN5tdQEC4qiZDK7KdTZHLj3842atpOV3t/8ojp47akmCdcqiT365qXj+uH5WDZtNDplpaCm3o4qXdxZkdWY1DfH2aaI6BlVPVNolSzdBOIsJjdD/+GNQ5CVGo/5f3N/YlBomRyHUxWR47Gqyzx2aJWMf/1xIEZ2zcLo7t4n3aljzVM/XIPDulrR5/dto3ltImBCrxxsPVIKIQRKq+vx7NxtKK0ynuvInzYHT0ZZoZSr3/nNzbj/7MMcRlQbe0+rrTn1MvawmE147IJeaJORiIQ4M2rq7W6pkAqDOrR0br/5fwPd9uuX8acneZ4DGtElC6seGqPJ9NFjIsLyPSc97g83SnXrEib1zcUHNwzxaWX6hN65zu3jZTWaWrWL7xnllCBX2PPsJOSmJ+BkZR06PjAX/Z6Yj3//sgdPz3E36MqNQ/90Fums2udKAZ5z+1k+nx/VVq9z6xTD9k4e2pnYIEGWPdYbLTW3ndMZyXFmDOzgnu3w+epDzu0f7/LssXuLIgi2KkKEwUqq3NclNIXb5XTY7PQEZ2h1fK9s5BtMkgMAiNwcuM/XHHITk/tVXoEbbaizxXq1SceM/xvk0/lRbeyJCP3bZWjanrqwFwbnt/RwBhMLWC2EersD93y+weMx94zvhk2Pj0daghW3ndMZJnJ59Ep2zi2jOnl0KHzh0oFS9bTLZizHl2sOGR5TUWvDTbNWY08Y5JmXVEuhhJFd/UuXvnNsVwCSNpASGvpDvzzn/qkjCzTHLzLIigIkMTn109anqw44txsTmRNC4NUfd+H34tD/XRtDWZuQIT9JTuidgz3PnNfQKRqi2tgD7vnAwzq1ClFPmHDBYiLYHQIbG1mRqSwSMpsIDiHl1dfU2zFvy1EAwC3ndG7odK958fJ+zu27P9+A0waTbl+vO4wftx3DW7/4LsEcSKZ9uRHv/7oPgMvoNBW19LiyyrhFsuuayt5z5bmAf/3RPaSmMPPXfcifNgcbDpZgrUpYbtay/cifNsejbMbFbyzDyz/uxJiXfm7qMJqFzYdLcaKiDkM6tsTKB8c42xtbyKYm6o19iW4Cx+JFLjAT3ZhNJsOVm55QCpafOf0nFJW6skGS44KjnmpUp/aIHIcOZRnNORuL8Omqg9gle8GBVI/9z2+SN67Wwr/6jA7S76HtAWhXOJ/fNxdqlLUSF/7rV6QlWJAjZwb9Y952AMDD37iXgjxZUYv1ByNDcVR5qrnprI5NVgCIessXr0t5M3EqTsyz46ik6JFoNaNz6xRsenwcNjw6zuPxt8oefElVPb7b4JI0piB9l+77ciNu+WgNrnzLVclJ0cz/fM0hPPzNJo/nbjpUGjQd+Fs/9lwPIFDkqNY/tG+VhH3TJ2F0d3dxtSf+0As7n56Im0d1cttXVmPDxD45mjaHwd9kUAMZVuHEdxuP4EVZgntEl6aHzqLe2Ov/HdnWMxsOSo/01fV29G6ThtQEa4MZNSkqmQPln+7B87oHtE8vX9FPk4Eyd9NR/LbnlKEsgeIFqxFCYP6Wo7jgn0vxxuLA17dtSrlGb3j1yv6a157kkRXSEiywmgmtUuIRZzHh/gmuz0E9gXnxgDzcpNIi2nS4VFMa8mipe77+yTBdnXvbx+uc2/rFgb4Q9cZefz9nY888c0lv57a3QlJqowIAU0e6e5T+cPGAtlj7yFi3Sc+qOjtOGcTwC5/+EQdPuVblzvh5D6bKq1Gf/2FHQPsGuBdlefT8ngG57oX989AnT9LB6Svr4TTEukfHYftTEzVtb149EG9fW4jfHjgXkwe1xXOX9kXfthl4aFIPvDulEG9fWwghpNKQ+dPm4In/bcHs9a5V0efJTwGDnv4Ru465MntKq+uxfHf4pMT+bUwXv86PfmOvs/YcxmGURVAAMKanZ/11Nf3auQxRSgOiZ/6Sq1uFWlNvx0cGxdJPVNTiye9cOeYfLt+n2X/B60sD2q8qlQrom1cPxA06BU9/UFYXe7P+xWwitxXwE/vkYmzPbCTGmfHCZf1w+eB2AKQw27k9spGXodWPee/XfVi59xTyMhKx99nzMKmPawHXKz/ucm73e2I+rnr7N3yy8gAWbnOfR/GXWpsd/5Uzh4rLazQ3bzWp8RaM6ZGN2/xMCIh6Y6+HjT2jziKZOqKggSNdnNkpE0vvPwfjembj3SmFjZ/QRPRzTGdO/wnZ8g3gmqEdcFZnlxaNkrVTXlOPE7oVuJsOl2Liq0ucVbL8RUlhfO+6wZjYJ7eRo31DmegNlvS43tgDwMLtxchMiQMRaZ4o5mwqwt4TlZqw1QNfbcKNs1YHvFbwdTNX4f4vN+HR2Zsx5O8LMeK5RW7HCCFQVW9Ht5wUp1JoU4l6Yy90gRyWxWEyEl2xcV9S19q2SMJb1xbijILgpe8aebdK8ZTbz+2Cf/1xoFMps7LOjjkbizD5zeXOjKGdT7tCHNuKyvDxSvf4flPYKYc3/IkZN0Zj8fqmkp5kxYZHx2HxPaM09X9r5dz+NrqbwTkvLDZU9ez56A9YtEPKill74LTHFdjekpsh3cQ/WO56ctPPjdTaHLA7BJLi/H+ajH5jrwvjBCuDgokcFNXTq89oH+KeuGM0h7ClqBTZafHISo1HepIVN40owMTeOdhWVIZbP16LHao4c5zFhBcvc+XtzwlQYZT7v5QygGptgRdsU24kXbODt7I9PcmK/MxkXDHY9Zk/eJ5002xIGFH9JAUA17+3Ci/O34FL3liGF+Y3fW7k1o/XGqqp6m8yW+T6xG0yvBeZ80TMGXu9p8/EHiYTYeuT4/Hkhb0bP7iZUQtbXXdmPgBg8+Eyp4yyglHIY90jYwEAlw5qi/l3jkS8xYQVe095zCUXQuCrtYcazbRRC58VGshH+Mvc20fg+uH5TuMbbMb3ykZynBlDOrpW0r9yRX/M+L9B+PwvwzTHvn/9YCx/YDT+O3Wos+31n34HIMX+m4IQosGbsDor6NI3lwEARvqRcqkQ9cZej83Oxp4BkuIsYSl1/a+rBwCQipFfIU80AnArvqKvevXtbcPRQpW62TU7FfeM6wYAWOJBGXHJrhO467MNTg15Tzz7/TYAQPec1AYrcjWVVinxeOyCXs321P3vawqx5ckJmkVhFw3Iw4TeORic3xKPX9ATA9tnYNVDY2Axm5CbnogzClph3/RJbtfKnzbH53UNRpXPLh7gkolYKC+gUt8QWqUYF8jxhag39ooCXpIca7T4UmGBYZoZJX5sF0IzkawURlFo31Krotm3rVYDCgBuGiFlzChrA/QoIaOi0obTTxUP9vE/9GrwuGjhuuEd8dUtw511cNWse2Qsnrywl+YJYMVe7wTs7A6BTg/OxXmvLQEg3TwX3n02zuuTg0fO74ndss7NfV9sxLGyGtTapCeuyYPa+jskAH4WL4kkXr9qABKtZrRO9T/2xTDBomNmMoZ3boV7xnXTTCQP000K7zrmEu76ddpow2upPeVTlXWIs5hwsqLWWfJPkRL4fvNRr/pmVLIx1miRHIdrh+UDAFY8eC5GPLcIHy7fj6FeTNqfrKiF3SFw8JR0c/3nHweiU1YK3rjaXb3yjGcWooV8s3/6osCEG6Pes1fKpplMhDN1ky0ME27EW8z46KahGNC+haa61dACrVKrIuj3h35tDFMLFZ6SDUVJVR2ufmeFs6oUoNWlN1pRqieYmTiRSHZaAi7un4efthdrNIt2H69A/rQ5boVFDujy6Fsb1C5+7ALXYjWlHGOgNIii3tgnyylL1XXBWe7NMMGCiPDsJX3wxV+GucWzJw9qizUPj8FrVw1o8BpKQer9J6ucBdIVwzSwvSv042kS99Bpl4EyKrcY6xTmt0B1vR2frz4Ih0NACIG/yvIGU2audB5nszswecZyzbkpBumU1w/vaKj3EwiiPoyjfNnDcTKOYRrjqiGe00O9mbTLkPVi5m5yTfadrKjF95uP4uDpaozokoklu07guAddGCUt8sYArpiNJgqypNDWtK82Yc+JSjcJ6u83FWFin1yMf+UXZ9snfxqKzJQ4j2s87p/QHfeO64bXftqFNumen9p8JeqN/T3ju6FDZjLG9vBuWTzDRBOKN65WRr7903X4bY80qXjxgDws2XUCMxbvxjVDO7idf7pSCiVcO8x9H6N92jGqNXDzR1ql0MH5LbyqqWEyEf42pqv/HVRfM6BXC0MSrGZcM7SDTyslGSZaUBaQlVa75BQUQw8AvdqkITXB4lEnX0kTDEbKZTSQ5GEeQ589pTDzusHB7E6DRL2xZ5hYRhFt+3GbcUm/tEQrLuqfhxqbHQ6HwMJtxyCEwIKtx/DM3G04WlajuQ6jRS2rrLDx8XGYe/tZGN9LG03Y9Pi4kM578CfIMFGMJ89TYXdxBVISLCipqkfBg3MBSAZMX4w9PkgiZZFOaoIVm58Yj42HSvDHt1fgpcv7IS1BSZnsgx+2SGqZbVskhnyCm409w0QxRqtSe+amoWt2Cr5ZfwRXn9EB7y/bp9mvN/SersNIpMRbcGanTOx99jzN3ykrNd6tLZRQsEqY+UphYaFYvXp1qLvBMFFHvd2BHUfLUZCVjIpaG1olx2uy0xwO4fTqjchOi8cKVZFrJrwgojVCiEZ1t/nZjGGiHKvZhN556UiKs6B1aoJbGrLJRNj8xHi8dY1rJeeYHq2d29cP57TLaMAvY09EM4momIg2q9paEtECItol/w68TB7DMAElJd6Ccb1ysOS+c5BgNWkUQdu1SGrgTCZS8Nezfx/ABF3bNAALhRBdACyUXzMMEwG0a5mE7U9NRJuMRIyVSzaO68VrVKIBvyZohRC/EFG+rvlCAKPk7VkAFgO435/3YRim+Xlhcj9U1duCVkGKaV6CkY2TLYQoAgAhRBERtW7sBIZhwo/0JCvSwXo40UJIb9lENJWIVhPR6uPHjQssMAzDMP4TDGN/jIhyAUD+bbx0D4AQ4i0hRKEQojAry/+yWwzDMIwxwTD23wKYIm9PATA7CO/BMAzD+IC/qZefAFgOoBsRHSKiGwFMBzCWiHYBGCu/ZhiGYUKIv9k4V3nYda4/12UYhmECC+dUMQzDxABho41DROUAdoS6H0EmE8CJUHciyMTCGIHYGCePMTLoIIRoNMMlnFQvd3gj5hPJENFqHmN0EAvj5DFGFxzGYRiGiQHY2DMMw8QA4WTs3wp1B5oBHmP0EAvj5DFGEWEzQcswDMMEj3Dy7BmGYZggwcaeYZiohsKlCGyIaVZjT0RRr5dKRGb5d9R+waJ5bApElC7/jlqHiIh6EVFCqPvRDCSGugPhQLN8kYloKBF9CuB5Iurd6AkRCBENJ6JZAB4mopYiCidDiOgMInobwP1EFHUypURkIqI0IvoOwGsAIIRwhLhbAYeI+hLRUgBPA2gV6v4EC9nufAngX0Q0TnHEYpWgG3siugzAmwC+A5AA4C65PWq8QyIqAPAGgEUAOgB4iogmhbZXgYOIzET0LKTMhV8BDATwGBFFVb062bCXA7ACyCOiK4Co9O4fBvCFEOJiIcRhILr+HwGAiEZB+p/8CtLK/P8DENP1sJvjS9wFwP+EEP8B8DIghXOizPMdBGCbEOJ9AHcDWA/gfCJqF9JeBQ4TgAMALpPH+DcAQxGdj8fdIS2ffwXA1USUKoRwRIMxlJ9cOgGoEEK8IreNJaIMANEWfuwDYJUQ4iMAH0K6gVeEtkuhJeDGnoguJ6K7iGiY3LQDwCVEdB8kOeQ2kB6rBgf6vZsL+fGwq6ppFYC2RNROCHEakvdbAuDikHQwAOjG6ADwiRBiJxHFCyGOADgESVckYlGPUWXkfgdQB2Cv/DOFiNpHqnOiHqP85FIMYAQRTSKibwDcAylkda98TMSPU2YJgMuI6FEAawHkAnhDjjTEJAEz9vKj/qNwFRd/m4j+AOkx6g4AIwFcK4SYAOA4gEuJKCdQ798cEFEGEc0BsADA5USUIu+qAbAUwOXy6x0AtgJoFWkTYEZjFELYhRAlACCEqCWiVAAdARwJZV+bisEYk1VGrhBAmRBiC4AtAB4D8CYRWSMpnGM0RgAQQpQDeA/AUwBmCiHGA3gHwFAiGhqyDjcRT/+TQoj1ACYAyAdwixBiFCQnbAIR9QhRd0NKwL68Qgg7gG4A7hZCvATpn+ROAF2FEAshGURF1XI2gL4AKgP1/s1EMoAfAPxV3h4ptx8H8BuAPkQ0RP5bHAYwXAhRE5KeNh39GEcYHHMGgC1CiCNElEJEXZqzgwHA0+cISOGqVCL6L4D7AKwBsFMIUR9hk7UNjfE7SEZQiWGvBnAMQG0z9i9QePy+CiFWAsgCsE9u+glAKiLP7gQEfytVXUtEZ8sxP0D6wrQgIosQ4ktIntGVsge/G8Bk+bgBkIx/2KMaY5o8mfUWgM8g9X8IEeXJxv03AOsAvCx7F70AHCCipJB13ksaGeMZRNRGPk5RSc0AcJCIrocUwuofin77grdjhGQAswAchfQ9vRlSJbaw9wa9GGMeAAghNkIK29xGRJmQJi97AzgZoq77hA/f13gAywDcKp96LqTso4iwPYHGZ7kEObaZA+BjSLHc3ZDuqH8GcDsk2eTXhBAlRNQdwKeQyhP2hfRHbwNpouQ2IcT2AI0joDQwxjuEECfkY4ZDCtusFkJ8qDr3JQBtIWXlXCuECEuNfh/HuEqeYFfO/RDA1QBmAXhZNh5hR1M/RyLKVO1PARAnhDgVgiE0ip/f1bsAFEBKorhTCLG1mbvvNX58lr0gRRlyANRDsjvbmn8EYYAQwusfAGb5d1cA/5G3LZBSnN6F5PH9AOmRMUne/zmkmBkApADo48t7NvdPA2N8HcBXumPvhJSrnA4gVTlf2Q7XnyaOMQ1Aitx2JYDJoR5HkD7HZNXnaAr1OII0xlRVuzXU4wjSODMAJMptiQAKQj2OUP94FcYhIgsRPQPgGSI6G1Js3g4AQggbgNsAXAAgD9Kd90r5NSBlNqyRj60QQmzy5j2bGy/GeDuAYfI+hbch3cAWAPidiNoIaTKzvJm77xV+jnEhgN1ElCuE+FQI8UUzd98rAvA57lF9jmEZow/Ud1U+vr5ZO+8DARjnPjnMWi2E2NPM3Q87GjX28h9yDaRY5u+QZvHrAZxDREMAZ0rXEwCeF0LMAjAfwLVEtA7SHTgsDbyCl2MUAJ4E8Ljq1EkAbgGwAdITS9hmpwRgjOshjbGoGbvtE/w5RscYgYB+Xw83Y7fDGy8eoUYAuEb1+g1Ik1bXAVgjt5kgxcS+ANBObstBhDw6+TjGzwDky20XAhgZ6v7zGHmM0TTGWBpnc/54E8ZZA+AzculK/AqgvZBWUpqJ6K9C8uzbAqgXQhwEACHEURE5j06+jNEuhNgHAEKI2UKIX0LR4SbAY+QxRsoYgdgZZ7PRqLEXQlQJIWqFlF4ISJk1x+Xt6wH0IEk46hNIK9UijqaMUc4OiBh4jDzGSCJWxtmcWBo/REK+wwoA2QC+lZvLATwIKUd3r4jw+JgvYxTyMwOeJn0AAAJCSURBVGOkwWPkMUYSsTLO5sCXRVUOSGJCJwD0le+qjwBwCCGWRrqhl+Ex8hgjhVgYIxA74ww6Pi2qIkk7Y5n8854Q4t1gdSxU8BijAx5j9BAr4ww2vhr7tgCuAfCSECISdTQahccYHfAYo4dYGWew8VkugWEYhok8IkaylWEYhmk6bOwZhmFiADb2DMMwMQAbe4ZhmBiAjT3DMEwMwMaeiUmIyE5E64loCxFtIKK7qJEas0SUT0R/bK4+MkwgYWPPxCrVQoj+QohekHRXzoNU0agh8gGwsWciEs6zZ2ISIqoQQqSoXhdAqqebCamk5IeQyt4BUim7ZUT0G4AeAPZCKsn4GoDpAEYBiAfwLyHEv5ttEAzjA2zsmZhEb+zlttMAukMS2nIIIWqIqAuAT4QQhUQ0CsA9Qojz5eOnAmgthHiapOLWvwK4TAixt1kHwzBe4LXqJcPEAIpErhXAP4moP6QyeF09HD8OkjjXZPl1OqTi3WzsmbCDjT3DwBnGsQMohhS7PwagH6R5rRpPpwH4qxDih2bpJMP4AU/QMjEPEWUBmAHgn7ImejqAIrkS0jUAlGpJ5QBSVaf+AOBmIrLK1+lKRMlgmDCEPXsmVkkkovWQQjY2SBOyL8n73gDwJRFdBmARgEq5fSMAGxFtAPA+gFchZeislaskHQdwUXMNgGF8gSdoGYZhYgAO4zAMw8QAbOwZhmFiADb2DMMwMQAbe4ZhmBiAjT3DMEwMwMaeYRgmBmBjzzAMEwOwsWcYhokB/h9wGy5ajrteRgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "apple['Close'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "SAP.to_csv(\"REALLONGTERM.CSV\",index=True, header=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEACAYAAACwB81wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XeYFFXWB+DfmQBDjgNDdMhZEAcEERREQDHBtyiuC2bUBeMaMOO6Cru6ZlnFnEEx4IKSXRVQYMgZCSNDHnIemOnz/VFVPdXdVd3VoapDnfd5eJiu7q66t7v61K1zb90iZoYQQojUlxbvAgghhHCGBHwhhHAJCfhCCOESEvCFEMIlJOALIYRLSMAXQgiXkIAvhBAuIQFfCCFcQgK+EEK4hAR8IYRwiYx4F0Cvdu3anJubG+9iCCFEUlmyZMk+Zs4O9bqECvi5ubnIz8+PdzGEECKpENEfVl4nKR0hhHAJCfhCCOESEvCFEMIlJOALIYRLSMAXQgiXkIAfRHFJKYpLSuNdDCFEkjp04jSOF5fEuxheEvCDOHvMTHR8ema8iyGESFKd/j4L54+bG+9ieCXUOPxEU1ziiXcRhBBJ7vDJM/Eugpe08C1YuGU/Cg+ciHcxhBAiKtLCt+DaCb8BAArGDYxzSYQQInLSwhdCCJeQgC+EEC4hAV8IIVxCAr4QQriEBHwhhHAJCfhCCOESEvCFEMIlJOALIYRLxCTgE9F7RLSXiFbrltUkollE9Lv6f41YbEsIIURkYtXC/wDAAL9lowHMYeYWAOaoj4UQQsRJTAI+M/8M4IDf4qsAfKj+/SGAq2OxLSGEEJGxM4dfl5l3AYD6fx0btxVzt364ON5FEEKImIp7py0RjSCifCLKLyoqindxvGav2xvvIgghREzZGfD3EFE9AFD/N4ygzDyBmfOYOS87O9vG4hhbsHkfckdPwx/7jzu+bSGEcJKdAf87ADeof98AYIqN24rY10t3AAAWbvXvghBCiNQSq2GZnwP4FUArItpORLcAGAfgEiL6HcAl6uPExfEugBBC2CsmN0Bh5utMnro4Fuu3E8W7AEII4ZC4d9oKIYRwhgR8FUtORwiR4lwf8ElyOkIIl3B9wBdCCLeQgC+EEC4hAV/FksIXQqQ41wd8UgdmSrwXQqQ61wd8IYRwCwn4QgjhEq4P+OEMy9yw+6h9BRFCCJu5PuBrrHTa9n/5Z/sLIoQQNnF9wJcLr4QQbuH6gC+EEG4hAV8lc+kIIVKdBHwhhHAJCfhCCOESEvC1K20loyOESHGuD/gySkcI4RauD/hCCOEWEvCFSGHMjG+WbcfpEk+8iyISgAR8laTwRSqavno37pu0Aq/N/T3eRREJwPUB35vCl15bkYIOnTwDACg6WmzL+kd9thR9X/zJlnWL2MuwewNEVADgKIBSACXMnGf3NoUQzpi6cle8iyDC4FQLvzczd0qVYO/xMGau2Q2WswKRJLRddcRH+bjy9XnxLYyIG0npRDAs86NfCzDi4yX4eumOmJdHCDvNXLsHK7cfjncxRJw4EfAZwEwiWkJEIxzYnu12HT4FANh7tBib9h7F//1nAY4Xl8S5VEKYk+tNBOBMwO/BzJ0BXApgJBH10j9JRCOIKJ+I8ouKimwvzOKCA1iweR8AoNTD+DJ/O4DIR+mM+2E9lvxxEPM37YtRCUWiWbhlP0pKk3tYo2QfBeBAwGfmner/ewF8A6Cr3/MTmDmPmfOys7PtLg6GvPkr/vz2QgDApMWFKI5ifDJR2Q+JpAmVlEpKPTh84ozp84sLDuDaCb/h1bmbHCxVGY+H8fXS7Ul/wBGJwdaAT0SViKiK9jeAfgBW27lNf8F+KAdPnPb+HU4LyOilEu6T09++XIGOf59p+vxuNX23ee8xp4rk48slhbj/ixV4f35BVOuR9ogA7G/h1wUwj4hWAFgEYBozT7drY7PX7sHbP2/xPv5xw140f+wHrN5hvZPq5OlS7D9mPmZ51+GT3r8JcsFWspuyfGfQ573fb5wC5v7jSqNk3/HoxtFLSkcANo/DZ+YtADrauQ29Wz/KBwDc1qspAGDuur0AgJdmbcS7N3YJeL1Rq+fqN+Zjwx7zm5V3HzsXPZrXsrQuYa8x361Bv7Z1cX7z2rZvK95fL0VYgniXWyQWVwzLnLN+b8jXaGPqgwV7zdai4wC0HL40naau3Inc0dMwf9M+HNKlyez2wYIC/PmdhTFZl9n36NT3u/fIKXy68I+Yr1f2TqHnioBvJtJWk2EOX7eqU2dKsXL7ocgKlYReVzs0r39nIXr+68c4lyYyoeK63Z3yt32Uj8e+WY2dh8pShsu2HcTRUzLcV8ROSgd8u+5Tqw8ORlsY/dVKXPn6fOw9esqW7ScafTA8eqoEe48o9fZ4GEdOlY2AOXzSfDRMvJntKd5RWDZvX8vVl3qUDZ4u8WDQ+AX4z/82h7WeU2dKcepMqfex1XIfOH4aV78xHzt0BxyRelI64IcSaaNNO5DozxD0fy8rVFr3x4vLfngnTpdg9FcrEy7oMXPYZyMb9xzFe/O2ov9LP6PUwwFpDy14vTznd5w9ZiYOHD+NGWt2o+PTM7HkjwOWtnH4xBk8O20ttu0/gbnr94RVvljyftcOJcO1j9ITYSqp7ZPT0SnIqCMz3y7bgeWFh3wGPaSyb5ft8F6PE4rHw/B4UiM5ltIBP5yUTThf554jZSMmjH6XRlv9bOE2TFxciNcTbJraDxYU4MrX52Pe79YvHOv30s/4+9S12LDnKE6cDkw5aJ/JtJXKCJj9x4rx25b9AIBl26wdXF6YuQFv/7IVvZ7/ETd/kG+5bJEyz+Er/9sd70MdUKwecDwMnDoT/zH7zIzRX63EqgSdxuHeScu91+OE0vTR73Hd27/ZXCJnpHTA1yu14QhNpJwKa39r9Fv65fci5BcciLjFZrdV6pDVwoMnInr/niPFWL/bt6O7rFWs3i8YQEaa8rfV78Guz+t0icewtRYypeNQE9+uNKSZg8dP4yobUjn7j5/GxMWFuPH9RTFdb7ws3GrtzDTRuSbgl3gCWz2x+AlrAdMoIBCAYe8uwp/e/DUGW7KHNgHckQhTTaM+WxqwTAuSaowHM5CmBXyLgTwz3fquufPQScun3C0f/wFPTAm89s+sWNpi21v46ha+U68LiPXxrrik1HD5lOU7sKLwEN6dtxWAcsYXi9FC2ueVaA2djXuOInf0tIje+968rVGP2sodPQ33TFwW1Tqi4ZqAH6plGe1+ecN7ZS2ZP/YHtpbN1q+dIZjZuu+4I0MDj58uCwjMjDU7rZ2KHwwyDFMLYgz2tvCtBuZyGdZ3zfPHzcWrFlJl2uf46cJtgc+ZtKzZqZyO6t+zNmLPkVMBgTLSzWud5t+GuMBM77FvVmPyku0+nb9G/jl9velz+rO7RLLkj4OWXldcUhpQ/79PXYt8g/e/Nud33DdpueUy6C/2K/WE34cWjZQJ+DtDnJKeKQ3c9czSMJFat+uI6frH/rBeXUZgZsxYsxvzN+1D52dmYdbawE7JHYdO4odVu9D7hf/hgwUFlra/bNtB71QAYdMFmPfmF2Dgq/O8efdg9P0ZBqvyPk5XP4wSiwE/Mz28ELdgk3FZCw+UdfpGctwsa+GXlWfptoNBr8aOhH5fOVPqCdgfI80ondAdyH/eaH1ywge+XIHHvjGfBWXK8h2GI4g8HsYzU9d6f49ONPDX7TqC3NHTwrqiPpTzx85F6ycCJwUwujfwv2dtxDfLgk+Vnjt6mmFgf33uJlz5+nwsL3Qm6KdMwH/k61VBn7cjh/+Paet8Hl/6yi+WWuPfLt+B2z9e4m0V5OtGrpSUevDTxiL0GDcXd36qpEvyC5RWxatzfseX+YXe167ffcRn2OOg8Qtw0Qtl4+C37T+Bvi/+ZOn2dvpSaweubQZnKlZoreVDJ5XWvz6lY7WF75/SuSlULtgkIF784k/eTl99q9n/ezL72tZ4U3ZlywaPX4Crx88PXp4wlZTqyxa7C770B6rh7wV+hsH6JpYVmreG75lo3KJdvl1JD2n7thNnpzPX7FH/3236mtMlHrw7b6vlBsf+EGfeGqujzgDgpw2BB9zV6pl0xA21MKVMwDfKFeqPqI98vTLg+UgvvArGyuybWqt4r0EgHv+/zT7pIQCYtmoX/jV9PV6ctREPTi6rx4CXf8Ff/K401Y/QeG/+Vmzaewz/XWH9dB4oa41Hmn/V3qbVU5/SsfKDyx09DS/P9k3R/GjwY9HTvsmTp5WL3sZ+vw7M7NMi0295webQZy8A8OGvf/isX1N4IPCM8nhxSchht18sLkTBvuMht9thjO/Qyjd+3GyYh9979FRU13scCjJTaLinvcu2HcRSNeWhvdWJFr43HRfk4PXuvK14ZupafPpbeP0T/mdypR72OZP/v/8E9s89PHklBhk0CALO4pixdueRgNfZyfZ72jrFqAW/QjckbMYaZ8Zy//XTwE5Mf8F+BAX7jYPBeJMLcILdvUhrXYWbDtBe7/+RFpeUYs/h8M4WlHIA6WlK28KuU9c0tdBtniw7Db+3b8uAcmhOni41fc6I2Wfo8TD+OX09bjg/FwNe/hlHTpWgYNxA0/U89NVKVM3KwMox/bFs20F0alQ9oJX94wbjqUD2HzuN+tUreB8XHjjhvbLZf5tv/bQZN5yfG/K7D9YH4/+RbNp7DCM+yketyuUMXz9o/IKy96ofaLiNhmaPfo9eLWrj/Zu6hn6xd1uhX6OdCfuPKPN36kwp/jFtrfex//6qnSXNvr8Xmtep4vNcSakHGelpmKSehb/xo/mU2q/M/h1Naldy/EK3lGnh61uOuaOnYUaQ0zs7zQ0xb48yw6Z/h5zvlaqxYtY6DYV0LXx9CuaBL1ei1/Ohp04YaXDQ03K6Czbvx+odh1HqYWz0m7eo1MMRj6DYf7w4ZLpIH3xmrd3jHZlihdnZ4Irth/DWz1twz8RlOBLiu9OC4JFTJRj52VIMGr8Anxh0ID85ZY3h+9fsPOJz3UN+kHTC2B/Wo+2T5hPT+h/wjBw9VeLTkOr74k/Ysu84FhdY6/gEwu8bK/VwyLM5s22kBdnRrV6x/EV+IT75rew7STM5Yu416Ltq/tgP2HOk7Gzr+RkbfJ5/YeZG798F+4/77P93fLLEkXmoUibg+//Yb/94ScBr9F8GAMzRXcFpR67R6iqJlAD025b9ITufy9ZtvbxEhJJS4/HnZesr+1tLn89YsxtNH/0em/YqO+b/TFqe/nYcOukTuA+eOI2PdafSm4uO4ZXZG9HvpZ99dnqjDjHz8vrWZeOeYzjtd++DYKmOSfmFeGZqWUuOwd4Dzgt+P1Qg9FnSJoP58h/4cgWuf6fsgh39xz9t5S7lfWr9zYZN6t32UT5GfroUS7cdDDmCRtueWbGHTvgVuaOnBR2Nte9YMR4N0Tem2VLkW38nUzqb1W1Hm6KdvGR7wMF2i0n6zeynVHjAWr9XcUlgx/ykxYWGr42llAn42w+GDpTnPTfH5/FvW8paSFY6NsNldjprtPi2j/IxdMJvpjuSP315n5m61ieYF5eU+szbP3vdHjR/7Adc85b59QD6TiqtVfOLevWtN20U4Y/Xf+jpPROXe6ef2KXrrGo/ZkbQ9bw7byvmrDMfcXPGL+Dn61qiHg8HDT63fZTvff+EXwKnF5i4uBATF/m2xudv2uf9rA765cJX7ziMyUu2Y75u9ND63YH5Wu1sat8xa627HzcUYfD4BXhqyhpLwTTNpNmrpTtDtdYn5VsLQn3+/ZPh8liNw999+JRP+mP/sWLvQV87eEbD42E88OWKgOX6RoHe/V8sx1s/hTfPkV5xiQcL/UbBmZ1NxFLKBPzdR8LruFq2zXdHf8uGOUSs9vTrTzcPWzitW7X9MLrqDl7vztuK6boU1r0Tl6P72Lnex1rg1o8h3rb/hE8r/PNF2/D5om0oKfXgo1+NO7Yi/ekatXq0QPe3L5Z7yxFqJNUzU9filg/zA87UNP5Db1+ZU9bxW+LhoMFn/qb9IadRGP31KhzVjYq6/p2Fhj/SsT+sw+WvzTPYhvH0FZHM0zIpvxC/684q/jV9fVhnSOHYsPuo5esyNFvUKcSLSzyYu34Pbv8432d/W73jMGat3YNbP8zHVa8Hflb+uo2dgx7j5mLkp0vx4JcrcO4/ZuOThdu8Z5+AktIpOlqMB79cYekMSCsHEP6VtHuPFnuHWkfi541FPn2MgDPzNaVMp2249B1MmlgP3RxidIVtiC91p4XhWQ9ODmyJ6DuLf1gduv9i+prAVtEjX68y7AT2MPDOL1twrDiy/gV97lKjjQnXWrb9X/rZ8vr8z9Q0/gFvm+5AM23VTjStXTnoerX3pxFh+updaJVTNeA1Exf5tnhPlwYGlrd+Mm48TFsV+L0QRX4g1TcUzDr1Y6H/y9a/GyP+cyHtOXIq4IC4peiY6dXV+tuUTltVtt8+8a3vdQJEwD+mrcWU5TtRrUImrj6nAdo3qBa0bJe/Ng+/PNQ7IebKcWL6DtcGfCP+KQE7mAWDcIQaaRBK0dFiHDlpHLw/XxTYiWh0qhtrVm48E8qbQU6x75sUug7aAeJUSSnu+MR4tNWz3/tee/G3L0Kv940fN2Fk7+ZYYTBCafKS7Xh8YNuQ67DCKOj7dxzG2/2TlqNe9ayA5WYpoXd+2WJ5hll9w+KdeVvxzrytaFSzAr68/fyg70uUezgE63SOFQn4Onbk8YNR7pjl6Cbx6Der8JnByJBUoG/9RWJSvvK5hPOdFFi4OO35GRtw54XNDJ87eqoEU5YHv0ozlXwd4opUzcY9R3Hg+OmAixvDVXjgJLqNNT4jtIOWyoqEEzl8Cfg6iXKkt1OqBnsgsly4nn44Xqy9NDswraW538JZgtv0e+lnDDy7XryLEbaHvgq8wNMqJ3L4KdNpm4wSbCLBpGe1kzweXptrfhGOMLYhytRlsnFifj4J+EKIhGR0bUMqc6LT1vaAT0QDiGgDEW0iotF2b08IIZKREzNm2hrwiSgdwBsALgXQFsB1RBSbIQlCCJFCJi/Zbvs27G7hdwWwiZm3MPNpABMBXGXzNoUQQhiwO+A3AKC/UmW7ukwIIYTD7A74Rr0QPmNTiGgEEeUTUX5RUXiz5AkhRKpw4sIruwP+dgCNdI8bAvC5GwczT2DmPGbOy87Otrk4QgiRmMK5j3Ok7N7CYgAtiKgJEZUDMBTAdzZvUyS46hUz410EIRKOlbvlRcvWgM/MJQBGAZgBYB2AL5jZ+O4OwjWWPXFJvIsQttY5VUK/SAQV6wP96Etb45NbzovpOuPJiQsxbT+HYObvmbklMzdj5mft3p5IfE5cYBJrH95s/ZZ7iW710/3jst2g98+NwIUts3FBi9ro2aJ2TNebylLiSlv9HOXx1EB3v9FkcFWn+t6/VzzZz5Ftnt+sliPbiVTNSsb3a61YLt3hkgSqU6U8Hrm0NfLOqhHVeiqXz8CEYefGpEzvDM+z/NruTWth9dP9ca5a/nMaVw94zTNXtQu5HiJg7OAOaFNPmb76uq6NLZfBbnf3aY43/9I53sUwlRIBf43Dd343kxbDT/P9m7pEvY529QPnc9d7YUhH79/VHMqrx6JedvrqzsCpdC/rkIMqWZm4uHWdiNf7YP9W0RQLADAkryFuv7AZnh3UIep19WuXE9FZy6Xtc9C2Xtl+VbWC9f0mI51QuXwGBrTLAQDcf4lyk3l94B/WPdeb+qlbtbzhembc28snyMfqrlqxwABCzbL+31EXOFIWIykR8M1unGBk8Dn2XQbgCfFFz3u4NwrGDcScv10Y9HVXdKyP8gY99i9d29Hg1ebqVCn7wTw+sE3A805Mx+ovXd3miF5NY7rexjUrAoh+xkH9TXBu7tEEAJBdWfkc372x7GBVKcwW/8jezVEwbiAuaO6bfqgWRsC8r68SIGMV4JplVwr7PRXKpftsX/95TxrRLeh7tbfd2rMJfnmoN3q2yMaL13TE235nCT892BsLH73Y8LNZ/8wAtKzr25+SQPEeAFASJBBUyExHh4bBb8pip5QI+OH8yDufVQNDuzQKWG4UEGOtYQ0lKDXLLrvzUvsGga3wLrk1AnbiwZ0b4OpODfD8n862vD39Hf+a1wm825MT4379pasbffSyNigYN9DnoGRFp0aBaQAA+Oy28/DejXmY93CfqMqnvzl6HbWFWaI7CHRvqqSkpt7d07ssVKDTe/W6c3we59a2HnQz1IaNWcAf3Nn+axrvubiFz76p34XahDij1MpNRGikHqAHd26I2pV994FqFTJRt2qW4U3JMwx22nDj/ae3noc/ndsQzw5qDwDo1TK2w8Hb1DP/HC5tn2O4PCszDbPu6xXTchhJiYAfjtqVy+PGHrk+y76683zc2rNp1OmGcFpe+Y/3xdd/PR+DzmkY8BwRBQR8AoGIMCSvUUBfweQ7uuMjg9Pz4d3O8v6tX512qkxEqJDpXG66YNzAgA7bcMcev3G9cX60YY2K6NO6rk/AjoR+Sv0qWcrtIvSt/reGn4vPb+uGJrpAHU46LKCPIILyGr2ld6ts1Kxo3P+gp0+fRPJRVa9QDgx9C7/s+6yalYnHLmuD70b1QL1qZXe10vo/gt1CtG+bOri3bwufZUYNuXSDgN81t6bl8gPKme8LQzri+vPOQsG4gYa/nUgxAy3rVsG6vw8wfP7iNnUNl4+8qDla1LV/JJjrAn7/dnUDdnStE6l3q8hztEDwH9Co3s19HteuXB6dG9fAMF1Q1hACDx76/XzuA2UpocHnNEBebk30apmNRY9djFbqTjP1rgvQt21dvKV2zunzrt/8tYe3Y+n7e3riX2GcNVhxSVtlp/7hnp4hXhle0GlYowLqVwu8PV64bjw/1/S5RjXLDqZaqlDfwq+alYnufh3P+kC26LGLLZfjvRvzYBQDtbOIUPQH64rlM9ClSejAF+4Z1ehLW/s8pjTfgyKR7/dyW6+mOLthdfzyUG/89SLlLl9DuzRGRhphpN9vQO+dG7rgXjVlpTFKORqN8MqpluVzAA4ly2Ij54qOyqCGDiHui2ukgknKz+iMHgDSHDrdTomAXz2MPKhR6zlWgrXwR/Ux3tmNWrhEgevK0QW68hm6nUm3n9SpkuVtfWnBqn+7HBSMG4i6VcveX796BQxor9xNqEntSrgmLzDFBSAgt2rVa9edg18e6o3M9NjtxO/f1AXzHu4Tckin9nz9almY93Bvw9c0M0hvaSqWy8D3d/fEK0M7edMHZi1TrVNc/1XVqeJ7QOrVMhtv/sV4REyf1nV9WsuAMsrjc4u58KbZlfDK0E4AlN2gf7uckB3L4fbbjOjZ1KfvKI3IN4cPYN7DfbDgEd8DXUZ6mrc1Xq1CJjY9d1nYqZNwBkHMuLcX8h/vGzKt9flt3bzppFAql1d+Z1d2rB/ilWX8v09/Z9UyPjA51Z2WEgG/abb5D1jTr21d748jt3ZF7+l6LBl91dd1bYzNz11mqVVxXdeywOt/7LjWoN8BQECeU4tNkexA/dv5nm5qLXUAuMPknqxGsjLT0ahmxbDG24caahjs7CtYi91IZojWVNv6VXFVpwbegFViEvA7qv0JZvvS1LsuwEc3d8UAk7wtEPg9aw+vCBJktKCi/3i1z7phjeBDg41SIsGGE6elkU/aMY2AklLjlI4/bZ+vVD6ytGE4B6dyGWmoXbk8XrymU9DX+Z+dBads36y1bqSZhVhkvCVp4cdM3zZ1MGF4Hq7qpBz9K5bLwKoxsb/4RJ8/vqiV0prJykwz/JEZv1/5378VpS2zQhvnHslVja9d19n0KtjRl7bG8ifDu0LWSpnPVkcs6M9AwvHcoA4Yc2Xg2G39p1e7cnmfoGb1+9A638wu7Hnqirb4dmQP01Zbe5NUQPemtTDmCuW2EP7HEu1rD9YXUbm8coBpbhBcQh1kjdMkQd8S8P7dR07pHpu/9pYLmuCBfi0xvHuu9Q3oyxXRu4BVY/rFZBhsJI2mQQajAK2UZXj3wNSuHVL6Jua3XNAE787b6tj29L/Ra/Ia4ayaFXHfJS3N32DyfiWH7/ucWVrBf6d84vK2uLlHk4DUghXlMtJQLsO846+6hU7B8bpOVaMRFf7+fU1HjOjVFF8tDf/mD1vHXhYQ4Iy2WD4jDa1zqmDHoZMAjIfxjujVNOBH17JuFax4qh+qmrTgy2ekG44aent4HnJrmacN9Ckbs8AeLDHQNLsyPry5K7rk1sDMNXsAlNVbC+hExv0j+q8kVGrTaGQXEfD+jV1w/TsL1e0Gb+GP6tPC9PlQIr0iu0pWZljDXQHgoQGt8K/pGyLanp5RmUf2bo7/rtiJm/wGi2gmDDsXlco7E4pTtoXfpl5VnGehEyuW9L+f8hlpePqq9qiaZX3H0+f/tBZ+o5oVMKJXU9PTbv/dKzM9LayhfrGmL0/DGhVCXvZesVwGzmlcw7DzMuS2QgSE+tUq4LqujfH28Dyf7ybDoG/hnEbVvcNm9apVyAw78FzStm7EIy5C5YA1F7bMRsVyGejfLgcD2uV4O1e1gN6yjvH2M8K4ZsXooJVGhB7Na8fsuodg9Aen9g2qYmIYw1+1xoZ2lvbk5W0x+37zYY+VgwTcWHT5Tb+3F67tYnxFcI/mzk0NkZIB/8H+rfD28HMdn7OFmZGVqXykkWyadfl3reXXJqcqHr2sjWO9+KEsfeISXBik802f7yQifGxxciutvlpHb6i0S6jhpMxK/nns4A5oW7+qT0va6MwjnEAYS2Yd/VYbChXKpePNYeeivtog0D63q89pgCkjewRMCaHvl9GY7as5BiOitDMIqwemaOh/v63qVkU3i6OXgLL+g44Nq2Hr2Mtw8wVN0NzkIAgAAzvUC5ggz7t1k+/oNb9rKqymCv1F+r5IpGTAH9m7uWFrzV/1ipkBp+QLRod/4c63I3sAUIKGNqQukpFA2luIyNviDZUHN8oZmnnzL50xRS1rpGpWKocxV7Yz7GR9+sp2QQ8Gwfyl21kol56Gi1srASnYhXCv//kcTL/XeMin2cfVVndRULpu+Ic2ciSWI4rCYZbDNxu+F4oWJD3M6NiouvfKZkC5SrV/u7IO5FBB+/GBgbef1mKTdjGpnVc8PIiPAAAUyElEQVRra9u6pG1dPHVleLfCHnh2PdzWswlGX9raUsOvVuXymH5v2RnAA/1ahmy06TvWf7inZ0SxA7CW+oyVlM7hh7LcYMKw+hFMgFZObR3WiHI+Gt8cvvLAbGja1LsuQJWsDNMOQyPaUMxoNaldCZPvPB+5o6f5LL8hzNEyeu3qV8PGZy/FE9+uBuAbSHo0923ZXX629WFymvv6tkSrnKqYuWa3T5rpwX6tsPPQSeSFefFOrPi38LVHf+7aGNUrlMPIz5aGtT5tKKE2NYf+zNB/pJh2ltSqbhUUHjjp81yz7EqGI8u04KmdMdnZOtW2dXOPJmGlRgEltfmYwQHLqlF9WuClWRsBKH0C/vwbJMGurg3FybNLVwf8WNGCcseG1bHvWDGAyFI6zeoowbtetQo4cOK0uh7jFZmNAEl2ZQe6snp/eqv13K2ZjPQ0XNmxvs+Y6qpZGejQsBpm3x98biNbmTSyiQgDz66HkZ+Ft7pbezZFiYcxTO2ANpqTSVOnahY+vfU8dGxUHe2fmuHzXB+/8fxZmWk4daZsjphSBwK+tmon0kdGRvZujnrVsnBlx/q4d9Jyn+cGd1aGqk6964KgVxAnGlcEfLsnV2qdUxXv3pCHHs1r485PlkS8ntt7NcO5jWvgvKa1MGX5DgDxmeAMUGaIjIeyVJa92/n1kT6omBm73X/yHd1xJIJpuv13Tf999a1h5+L2j63vU1mZ6T5XrHZpUhPTVu7yDgP1599hOPv+C1GhXDpy/IbJTru7JxZtPeB9rM0IaW/A184mbNtEUOUy0jA0xNTLydbwckXAd4LZHBnhSE8jnKf2AbRSO5B6t3L+Pr/rnxkQ1gykseRRI77dB7p61WJ774JIU0Kh5l/S59wjoeWHrc73YzQUE1AuKNJfVKSVO93G7+msWhWxYPP+oCNoYi27SnkUHS0O+TortX7vxjw0CtGXaDbnjl1SJuBPv7cnBrz8S7yL4Q2U0Y4Qap1TFavG9DPMH9rN6lwjdhjQIQeT8gujvslHvNIA4bLjim89LSCHmqM9XKH6mGLhqSvaoXerOt4rmp0w/+E+Mdt3+rQO3QgM5yreWEiZgN86J7DTxO5kyMe3dMXRUyU+y54b3AG5tSuhV4voW+bxCPbx1rtVHRSMGxjx+7XPLJKO3XiYMCwPH/5agLd+2gIg9gcqrS8k1JnEdV0bhXUzEy1vbWdKJyszHf2iPMMJV7iztyablAn48dDTIKjXrlwej15m/9z6wljl8hlY8WQ/VLa55Rwr9atXwCOXtsHhE2cwcXFhzNdfNowyeMAfOzi8GVM9DgR8EXvJ8auIUDt1LPMQk9kgoxFqkioRP07drjGWvMNrY5yJ0q45MJsALlLa6uzM4SeyRLqtYjhSOuDXq1YhqvRAMIl04+RE4MTdelIZeYcgxpbW9x7rAOXEsEwRe7YFfCIaA+A2AEXqokeZ+Xu7tifiy4679Yy/vnPYk2AlK7vCptYCD5XSCZd3NJVLA35ytu/tb+G/xMwv2LwN2w3u3ABfL90R72K4zmUdYnNlcDIxmj1z4ohu2GthqKARbbRYaYwjlNbCd3JagESSpBmd1JxLxw4je1u/AYgQ4QqWCu/WtFZYd13S01IusW7h6+/d4EbJMuzXn90BfxQRrSSi94jIcGA1EY0gonwiyi8qKjJ6SUJwa+eUcFasW45awC+1qUnqlhy+/zTfrmzhE9FsIlpt8O8qAP8B0AxAJwC7APzbaB3MPIGZ85g5Lzvb+atKrRpxYTMM63ZW2LfTE8IK7UYisY4jt/Zsgp4tauNaG0aqAe5pCIW6r0OyiCqHz8x9rbyOiN4GMDWabcUVK+O7n7m6Pf45fX28SyNSkF1xs06VLMv3JIiEazttk7SFb+conXrMvEt9OAjAaru2FWvl0tNw2uRa9Dt6NcOOgye9sxEKEUvJGkjcJlnH4duZw/8XEa0iopUAegO4z8ZtxVSdquVNn6tWMROvXndO2PNzJzOzRpz/HYKEe9zX1/q9mlNRtMOFL+uQg6s6OT/9h20tfGYeZte6hXMWPXax9wYv/r64ozvOHjPT4RKlpsGdG2Lqyl24tWeTeBfFknv6tsA9fSO/QXmy0fpYbrmgCR65tHXUNy0Zf/25sShW2FL6SlsRvTpVAu9rqqmalYnp9/ZEpXKyG0WrZqVy3ltlisTTv10Onv1+HYbkNYzb/Y9jQX6pBvw70JIzW+cMo1lK/T3QryU6N45uumMh4qlxrYq2TdPiJAn4wnaj+rjn1F+IRJa85yYOaiWdk0KIFCAtfAOkm8rq25E9cHaS3bdSCCGMSMAPoZODt1cTQgg7SUpHCCFcQgK+AZdMDyKEcBkJ+EII4RIS8IUQwiUk4BuQjI4QIhXJKJ0E0KN5LdSvViHexRBCpDgJ+Ang01u7xbsIQggXkJSOAZJhOkKIFCQBXwghXEICvhBCuETKBfxWdaOf6EwSOkKIVJRSnbbrnxmANMm/CyGEoZQK+FmZ6fEughBCJKyUS+nEhHqS8MrQTvEthxBCxJAE/CDa1At9+z4hhEgWUQV8IhpCRGuIyENEeX7PPUJEm4hoAxH1j66Y8SG9AUKIVBJtDn81gMEA3tIvJKK2AIYCaAegPoDZRNSSmUuj3J4jJNALIVJRVC18Zl7HzBsMnroKwERmLmbmrQA2AegazbaEEEJEx64cfgMAhbrH29VlQggh4iRkSoeIZgPIMXjqMWaeYvY2g2Vssv4RAEYAQOPGjUMVxxHaXDqGBRZCiCQVMuAzc98I1rsdQCPd44YAdpqsfwKACQCQl5cnMVYIIWxiV0rnOwBDiag8ETUB0ALAIpu2JYQQwoJoh2UOIqLtALoDmEZEMwCAmdcA+ALAWgDTAYxMlhE6QFk+iuV8QwiRQqIalsnM3wD4xuS5ZwE8G836hRBCxI5caSuEEC4hAd+ANuEmyzgdIUQKkYAvhBAuIQFfCCFcQgK+AVLH6cgoHSFEKpGAL4QQLiEBXwghXEICvgHvKB1J6QghUogEfCGEcAkJ+EII4RIS8IUQwiUk4AshhEtIwA9CplYQQqQSCfgGtDteCSFEKpGAL4QQLiEBPwgZhy+ESCUS8A1IQkcIkYok4AshhEtIwBdCCJeQgG9ABukIIVKRBHwhhHAJCfhByCgdIUQqiSrgE9EQIlpDRB4iytMtzyWik0S0XP33ZvRFdY6kdIQQqSgjyvevBjAYwFsGz21m5k5Rrl8IIUSMRBXwmXkdkLpTEchcOkKIVGJnDr8JES0jop+IqKeN24k5kkuvhBApKGQLn4hmA8gxeOoxZp5i8rZdABoz834iOhfAt0TUjpmPGKx/BIARANC4cWPrJRdCCBGWkAGfmfuGu1JmLgZQrP69hIg2A2gJIN/gtRMATACAvLy8hMqhyCgdIUQqsSWlQ0TZRJSu/t0UQAsAW+zYlh1StEtCCOFy0Q7LHERE2wF0BzCNiGaoT/UCsJKIVgCYDOAOZj4QXVGFEEJEI9pROt8A+MZg+VcAvopm3YlAMjpCiFQiV9oakIyOECIVScAXQgiXkIAfBMswHSFECpGAb6BLbk0AQK1K5eNcEiGEiJ1o59JJSaMvbY2hXRuhca2K8S6KEELEjLTwDWSkp6F5nSrxLoYQQsSUBHwhhHAJCfhCCOESEvCFEMIlJOALIYRLSMAXQgiXkIAvhBAuQYl0NSkRFQH4I8K31wawL4bFSQSpViepT2KT+iS2YPU5i5mzQ60goQJ+NIgon5nz4l2OWEq1Okl9EpvUJ7HFoj6S0hFCCJeQgC+EEC6RSgF/QrwLYINUq5PUJ7FJfRJb1PVJmRy+EEKI4FKphS+EECIICfhCiKRFRHJH0jAkVcAnosx4lyGWiChd/T8ldtpUqYceEVVT/0+q34oZImpHRFnxLkcMVYh3AWLJ7piQFDsxEXUjookAniei9vEuT7SIqAcRfQjgcSKqyUnekUJE5xHR2wAeJqKQF38kOiJKI6KqRDQVwKsAwMyeOBcrKkR0NhHNA/APALXiXZ5oqTHhKwBvEFE/LVAmK6diQsIHfCIaAuA/AKYCyAJwv7o8KVuTRNQUwHgAPwI4C8AzRDQwvqWKDBGlE9FYKKMH5gPoDOApIqob35JFRw3uRwFkAmhARNcCSd/KfxzAZGYexMw7gKT+DV0E5Tf0NYANAP4CoEY8yxQNJ2NCMuzALQD8l5k/AfASoKR2krhVfC6Adcz8AYC/AVgO4HIiahTXUkUmDcA2AEPU+twLoBtS4zS7NZTL2F8GcD0RVWFmT7IFSfVspRmAY8z8srrsEiKqDiBZU4odACxm5k8BfAzlwHwsvkWKShc4FBMSLuAT0TVEdD8RdVcXbQAwmIgeAvArgPpQTuO6xK2QYVBPPVvqFi0G0JCIGjHzQSgt40MABsWlgGHyq48HwOfMvJGIyjPzTgDbocz5kTT0ddIFv00ATgPYqv67gYgaJ0NDQ18f9WxlL4CeRDSQiL4F8ACUVNWD6msSuk4Gv6FfAAwhoicBLAVQD8B4NRuQ8IjoCiIaRUTd1EWLATRyIiYkTMBX0wNPAnhYXfQ2EV0J5bTtHgC9AAxn5gEAigD8HxHlxKe0oRFRdSKaBmAWgGuIqLL61CkA8wBcoz7eAGAtgFqJ3JlmVB9mLmXmQwDAzMVEVAVAEwA741lWqwzqVEkX/PIAHGHmNQDWAHgKwH+IKDNRUztG9QEAZj4K4H0AzwB4j5n7A3gHQDdd0Ek4Zr8hZl4OYACAXAB/ZeaLoATJAUTUJk7FDYmI6hHRf6EcaGsAeJ+I+jPzFiiNWdtjQsLsuMxcCqAVgL8x84tQfmD3AWjJzHOgBMoN6sunADgbwPF4lNWiSgBmALhL/buXurwIwG8AOhBRV7XeOwD0YOZTcSmpNf716WnwmvMArGHmnURUmYhaOFnACJh9R4CSqqpCRJMAPARgCYCNzHwmgTtwg9VnKpQAqeW68wHsAVDsYPnCZbrPMfMiANkACtRFcwFUQWLHhDwA85i5FzM/A+AVALepz82DAzEhrgGfiIYT0YVqPhFQdsAaRJTBzF9BaVkNVVvymwH8SX3dOVAOAAlFV5+qasfYBABfQClrVyJqoH6ZvwFYBuAltdXSDsA2IqoYt8IbCFGf84iovvq6DPUt1QEUEtFNUE5TO8Wj3MFYrROUwJgNYDeU/e1OAK0SrQVpoT4NAICZV0JpWY4iotpQOjrbA9gfp6IbCmOfKw9gAYCR6lsvhjL6KKHiglqfi9TyzgHwke7p/QB+V//WYsLLdsYEx6dWUHOkOQA+g5ID3gzl6H07gLsBZAB4lZkPEVFrABMBXAKlRT8SSg7/GIBRzLze0cIbCFKfe5h5n/qaHlBO1/KZ+WPde18E0BBKz/xwZt6AOAuzPovVznTtvR8DuB7AhwBeUoNM3EX6HRFRbd3zlQGUY+YDcaiCjyj3ufsBNIUyGOI+Zl7rcPEDRPH9tIOSCcgBcAZKTFjnfA18haoPKYNOzhDR3QDaMvMduvfaGxOY2bF/ANLV/1sC+ET9OwPKkKR3obQQZ0A5Fa2oPv8llDwdAFQG0MHJMkdYn9cAfO332vugjIGuBqCK9n7t70T4F2F9qgKorC4bCuBP8a5HjL6jSrrvKC3e9YjVPqcuz4x3PaKsT3UAFdRlFQA0jXc9wqmP7jX/BdBX/buO7rW2xQRHUjpElEFEzwF4joguhJKrLwUAZi4BMArAFQAaQDkqDlUfA8pIiSXqa48x8yonyhyMhfrcDaC7+pzmbSgHrFkANhFRfVY6PY86XPwAUdZnDoDNRFSPmScy82SHi28oBt/RFt13FPecfaz2OfX1ZxwtvIEY1KdATZGeZKXTM67CqQ8zlxJROSj9eRuJ6FkAs4ioBjOX2BkTbA/4auWXQMmJboIyUuAMgN5E1BXwDh17GsDzzPwhgJkAhhPRMihHvLgHeY3F+jCAvwMYo3vrQAB/BbACyllKQoxkiUF9lkOpzy4Hix2UfEdeqVofbZ/b4WCxTYVZn6fVt2UBuBFKg6kKlJb+QdsL68ApTk8Aw3SPx0PpALsRwBJ1WRqUnNdkAI3UZTlIoFO1COvzBYBcddlVAHrFu/ypXp9UrJPUJ+Xq0xBAVygduJ2cLKsTKZ0lAL6gsrku5gNozMpVZelEdBcrLfyGAM4wcyEAMPNuToBTNQPh1KeUmQsAgJmnMPPP8ShwCKlWHyD16iT1QcrUx8PM25l5ETMPZ+WaAsfYHvCZ+QQzF7MyHBFQRtwUqX/fBKANKZNUfQ7lqrmEFkl91F77hJRq9QFSr05Sn5SqzxIgfvXJCP2S2FCPfgygLoDv1MVHATwKZTzwVk6QnJwV4dSH1XO6RJZq9QFSr05Sn8SWDPVx8sIrD5RJjvYBOFs94j0B5RRnXjIFe5XUJ/GlWp2kPokt8evjZIcBlJkUPVAuI77FyW1LfdxXn1Ssk9Qnsf8len0cvdKWiBoCGAbgRWZO5Dk8LJH6JL5Uq5PUJ7Elen0cn1pBCCFEfCTMbJlCCCHsJQFfCCFcQgK+EEK4hAR8IYRwCQn4QgjhEhLwhasRUSkRLSeiNUS0gojupxD3rCWiXCL6s1NlFCJWJOALtzvJzJ2YuR2UOVAug3IXpWByAUjAF0lHxuELVyOiY8xcWfe4KZT78daGcpu5j6Hcng5QbqG3gIh+A9AGwFYot3N8FcA4ABcBKA/gDWZ+y7FKCGGRBHzhav4BX112EEBrKBNfeZj5FBG1APA5M+cR0UUAHmDmy9XXj4Byi7p/kHKz6vkAhjDzVkcrI0QIjs2WKUQS0aauzQTwOhF1gnK7upYmr+8HZbKsP6mPq0G5SbgEfJFQJOALoaOmdEoB7IWSy98DoCOU/q5TZm8DcBczz3CkkEJESDpthVARUTaANwG8zkqusxqAXazcrWgYAO2ORkeh3IdUMwPAnUSUqa6nJRFVghAJRlr4wu0qENFyKOmbEiidtC+qz40H8BURDQHwI4Dj6vKVAEqIaAWADwC8AmXkzlL1TkZFAK52qgJCWCWdtkII4RKS0hFCCJeQgC+EEC4hAV8IIVxCAr4QQriEBHwhhHAJCfhCCOESEvCFEMIlJOALIYRL/D/Uo1/v8QtiRwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration:      1,   Func. Count:      6,   Neg. LLF: 5206.19238728\n",
      "Iteration:      2,   Func. Count:     15,   Neg. LLF: 5205.44782196\n",
      "Iteration:      3,   Func. Count:     24,   Neg. LLF: 5205.16609339\n",
      "Iteration:      4,   Func. Count:     32,   Neg. LLF: 5203.4457523\n",
      "Iteration:      5,   Func. Count:     41,   Neg. LLF: 5202.94521095\n",
      "Iteration:      6,   Func. Count:     48,   Neg. LLF: 5202.45218084\n",
      "Iteration:      7,   Func. Count:     54,   Neg. LLF: 5202.28164924\n",
      "Iteration:      8,   Func. Count:     60,   Neg. LLF: 5202.25645484\n",
      "Iteration:      9,   Func. Count:     66,   Neg. LLF: 5202.25632277\n",
      "Iteration:     10,   Func. Count:     72,   Neg. LLF: 5202.25631508\n",
      "Iteration:     11,   Func. Count:     78,   Neg. LLF: 5202.25631385\n",
      "Optimization terminated successfully.    (Exit mode 0)\n",
      "            Current function value: 5202.25631385\n",
      "            Iterations: 11\n",
      "            Function evaluations: 78\n",
      "            Gradient evaluations: 11\n",
      "                     Constant Mean - GARCH Model Results                      \n",
      "==============================================================================\n",
      "Dep. Variable:                  Close   R-squared:                      -0.001\n",
      "Mean Model:             Constant Mean   Adj. R-squared:                 -0.001\n",
      "Vol Model:                      GARCH   Log-Likelihood:               -5202.26\n",
      "Distribution:                  Normal   AIC:                           10412.5\n",
      "Method:            Maximum Likelihood   BIC:                           10436.5\n",
      "                                        No. Observations:                 2987\n",
      "Date:                Thu, Sep 12 2019   Df Residuals:                     2983\n",
      "Time:                        13:40:30   Df Model:                            4\n",
      "                                Mean Model                                \n",
      "==========================================================================\n",
      "                 coef    std err          t      P>|t|    95.0% Conf. Int.\n",
      "--------------------------------------------------------------------------\n",
      "mu             0.0833  2.508e-02      3.320  9.003e-04 [3.411e-02,  0.132]\n",
      "                             Volatility Model                             \n",
      "==========================================================================\n",
      "                 coef    std err          t      P>|t|    95.0% Conf. Int.\n",
      "--------------------------------------------------------------------------\n",
      "omega          0.0636  2.750e-02      2.311  2.084e-02 [9.651e-03,  0.117]\n",
      "alpha[1]       0.0721  2.666e-02      2.705  6.837e-03 [1.986e-02,  0.124]\n",
      "beta[1]        0.9004  3.140e-02     28.678 7.095e-181   [  0.839,  0.962]\n",
      "==========================================================================\n",
      "\n",
      "Covariance estimator: robust\n",
      "-5202.25631385\n"
     ]
    }
   ],
   "source": [
    "import datetime as dt\n",
    "import sys\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import pandas_datareader.data as web\n",
    "import matplotlib.pyplot as plt\n",
    "from arch import arch_model\n",
    "\n",
    "# start = dt.datetime(2015,1,1)\n",
    "# end = dt.datetime(2018,1,1)\n",
    "\n",
    "# NDX['close'] = NDX['Index Value']\n",
    "\n",
    "returns = 100 * NDX['Close'].pct_change().dropna()\n",
    "returns.plot()\n",
    "plt.show()\n",
    "\n",
    "from arch import arch_model\n",
    "model=arch_model(returns, vol='Garch', p=1, o=0, q=1, dist='Normal')\n",
    "results=model.fit()\n",
    "print(results.summary())\n",
    "\n",
    "# forecasts = results.forecast(horizon=30, method='simulation', simulations=100)\n",
    "# sims = forecasts.simulations\n",
    "\n",
    "# print(np.percentile(sims.values[-1,:,-1].T,5))\n",
    "# plt.hist(sims.values[-1, :,-1],bins=50)\n",
    "# plt.title('Distribution of Returns')\n",
    "# plt.show()\n",
    "print(results.loglikelihood)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "Stock: SAP\n",
      "('Mu over 1 days:', 0.049117474655217444)\n",
      "('Sigma over 1 days:', 1.5176955642513446)\n",
      "('Monte Carlo VaR for SAP with confidence 0.99 over period of 1 days: ', 99.02716961589906)\n"
     ]
    }
   ],
   "source": [
    "def VaR_Monte_FHS(num,p,sigma_first,ndays,omega,alpha,beta,theta):\n",
    "    np.random.seed(4)\n",
    "    MC = num\n",
    "    sigma2_FHS = sigma_first\n",
    "    data_FHS = pd.DataFrame(index = range(MC))\n",
    "    data_FHS_R = pd.DataFrame(index = range(MC))\n",
    "    data_FHS['z_day1'] = data.loc[np.random.randint(0,data.shape[0]-1,MC),'z_Garch'].values\n",
    "    data_FHS_R['R_day1'] = sigma2_Garch**0.5 * data_FHS['z_day1']\n",
    "    data_FHS['sigma2_day1'] = omega + alpha*(data_FHS_R['R_day1'] - theta*sigma2_FHS**0.5)**2  + beta*sigma2_FHS\n",
    "\n",
    "    # 低2-10天公式一样，循环\n",
    "    for i in range(2,ndays +1):\n",
    "        exec(\"data_FHS['z_day\" + str(i) + \"'] = data.loc[np.random.randint(0,data.shape[0]-1,MC),'z_Garch'].values\")\n",
    "        exec(\"data_FHS_R['R_day\" + str(i) + \"'] = data_FHS['sigma2_day\" + str(i-1) + \"']**0.5 * data_FHS['z_day\" + str(i) + \"']\")\n",
    "        exec(\"data_FHS['sigma2_day\" + str(i) + \"'] = omega + alpha*(data_FHS_R['R_day\" + str(i) + \"'] - theta*data_FHS['sigma2_day\" + str(i -1) + \"']**0.5)**2 + beta*data_FHS['sigma2_day\" + str(i-1) + \"']\")\n",
    "\n",
    "    VaR = pd.DataFrame(index = range(ndays))\n",
    "    VaR['ndays'] = np.arange(1,ndays+1)\n",
    "    VaR['VaR'] = 0\n",
    "    for i in range(ndays):\n",
    "        R_ndays = data_FHS_R.iloc[:,:i+1].sum(axis = 1)\n",
    "        VaR.loc[i,'VaR'] = - np.percentile(R_ndays,p) \n",
    "    return VaR\n",
    "\n",
    "def VaR_MC(returns, S, start, end,c ,period, iterations):\n",
    "    \n",
    "    \n",
    "    mu = returns.mean()\n",
    "    sigma =returns.std()\n",
    "    \n",
    "    z = np.random.normal(0, 1, [1, iterations])\n",
    "    \n",
    "    ST = S*np.exp(period*(mu - 0.5*sigma**2)+sigma*np.sqrt(period)*z)\n",
    "    \n",
    "    ST = np.sort(ST)\n",
    "    \n",
    "    Spc = np.percentile(ST,(1-c)*100)\n",
    "    \n",
    "    var = S - Spc\n",
    "    \n",
    "    \n",
    "    print('\\n')\n",
    "    print('Stock: {}'.format(stock[0]))\n",
    "    print('Mu over {} days:'.format(period), mu*period)\n",
    "    print('Sigma over {} days:'.format(period), sigma*np.sqrt(period))\n",
    "    \n",
    "    print('Monte Carlo VaR for {} with confidence {} over period of {} days: '.format(stock[0],c,period),  var)\n",
    "stock = ['SAP']\n",
    "s=100\n",
    "c=0.99\n",
    "period =1\n",
    "iterations = 10000000\n",
    "\n",
    "\n",
    "VaR_MC(returns, s, start, end,c ,period, iterations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
